summaryrefslogtreecommitdiff
path: root/modules/spreadsheet
diff options
context:
space:
mode:
Diffstat (limited to 'modules/spreadsheet')
-rwxr-xr-xmodules/spreadsheet/.libs/libscispreadsheet-algo.abin0 -> 432766 bytes
l---------modules/spreadsheet/.libs/libscispreadsheet-algo.la1
l---------modules/spreadsheet/.libs/libscispreadsheet.la1
-rwxr-xr-xmodules/spreadsheet/.libs/libscispreadsheet.lai41
l---------modules/spreadsheet/.libs/libscispreadsheet.so1
l---------modules/spreadsheet/.libs/libscispreadsheet.so.51
-rwxr-xr-xmodules/spreadsheet/.libs/libscispreadsheet.so.5.5.2bin0 -> 368120 bytes
-rwxr-xr-xmodules/spreadsheet/Makefile1607
-rwxr-xr-xmodules/spreadsheet/Makefile.am81
-rwxr-xr-xmodules/spreadsheet/Makefile.in1607
-rwxr-xr-xmodules/spreadsheet/TODO1
-rwxr-xr-xmodules/spreadsheet/core_Import.def20
-rwxr-xr-xmodules/spreadsheet/demos/spreadsheet.dem.gateway.sce18
-rwxr-xr-xmodules/spreadsheet/demos/spreadsheet.dem.sce36
-rwxr-xr-xmodules/spreadsheet/demos/xls/README18
-rwxr-xr-xmodules/spreadsheet/demos/xls/Test1.xlsbin0 -> 9216 bytes
-rwxr-xr-xmodules/spreadsheet/demos/xls/Testbig.xlsbin0 -> 143872 bytes
-rwxr-xr-xmodules/spreadsheet/demos/xls/Testo1.xlsbin0 -> 9728 bytes
-rwxr-xr-xmodules/spreadsheet/demos/xls/Testobig.xlsbin0 -> 179712 bytes
-rwxr-xr-xmodules/spreadsheet/demos/xls/o1.xlsbin0 -> 7168 bytes
-rwxr-xr-xmodules/spreadsheet/demos/xls/t1.xlsbin0 -> 13824 bytes
-rwxr-xr-xmodules/spreadsheet/etc/spreadsheet.quit11
-rwxr-xr-xmodules/spreadsheet/etc/spreadsheet.start12
-rwxr-xr-xmodules/spreadsheet/help/en_US/addchapter.sce11
-rwxr-xr-xmodules/spreadsheet/help/en_US/csvDefault.xml250
-rwxr-xr-xmodules/spreadsheet/help/en_US/csvRead.xml395
-rwxr-xr-xmodules/spreadsheet/help/en_US/csvTextscan.xml174
-rwxr-xr-xmodules/spreadsheet/help/en_US/csvWrite.xml174
-rwxr-xr-xmodules/spreadsheet/help/en_US/read_csv.xml39
-rwxr-xr-xmodules/spreadsheet/help/en_US/readxls.xml98
-rwxr-xr-xmodules/spreadsheet/help/en_US/write_csv.xml31
-rwxr-xr-xmodules/spreadsheet/help/en_US/xls_open.xml127
-rwxr-xr-xmodules/spreadsheet/help/en_US/xls_read.xml116
-rwxr-xr-xmodules/spreadsheet/help/fr_FR/addchapter.sce11
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/addchapter.sce11
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/csvDefault.xml229
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/csvRead.xml417
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/csvTextscan.xml160
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/csvWrite.xml180
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/read_csv.xml40
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/readxls.xml98
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/write_csv.xml32
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/xls_open.xml125
-rwxr-xr-xmodules/spreadsheet/help/ja_JP/xls_read.xml121
-rwxr-xr-xmodules/spreadsheet/help/pt_BR/addchapter.sce11
-rwxr-xr-xmodules/spreadsheet/help/pt_BR/readxls.xml99
-rwxr-xr-xmodules/spreadsheet/help/pt_BR/xls_open.xml127
-rwxr-xr-xmodules/spreadsheet/help/pt_BR/xls_read.xml117
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/addchapter.sce11
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/read_csv.xml171
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/readxls.xml177
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/write_csv.xml193
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/xls_open.xml256
-rwxr-xr-xmodules/spreadsheet/help/ru_RU/xls_read.xml225
-rwxr-xr-xmodules/spreadsheet/includes/dynlib_spreadsheet.h28
-rwxr-xr-xmodules/spreadsheet/includes/gw_spreadsheet.h31
-rwxr-xr-xmodules/spreadsheet/libscispreadsheet-algo.la41
-rwxr-xr-xmodules/spreadsheet/libscispreadsheet.la41
-rwxr-xr-xmodules/spreadsheet/license.txt76
-rwxr-xr-xmodules/spreadsheet/locales/ca_ES.po420
-rwxr-xr-xmodules/spreadsheet/locales/cs_CZ.po427
-rwxr-xr-xmodules/spreadsheet/locales/de_DE.po413
-rwxr-xr-xmodules/spreadsheet/locales/es_ES.po412
-rwxr-xr-xmodules/spreadsheet/locales/fr_FR.po455
-rwxr-xr-xmodules/spreadsheet/locales/it_IT.po465
-rwxr-xr-xmodules/spreadsheet/locales/ja_JP.po443
-rwxr-xr-xmodules/spreadsheet/locales/pl_PL.po431
-rwxr-xr-xmodules/spreadsheet/locales/pt_BR.po417
-rwxr-xr-xmodules/spreadsheet/locales/ru_RU.po435
-rwxr-xr-xmodules/spreadsheet/locales/spreadsheet.pot589
-rwxr-xr-xmodules/spreadsheet/locales/uk_UA.po460
-rwxr-xr-xmodules/spreadsheet/locales/zh_CN.po381
-rwxr-xr-xmodules/spreadsheet/locales/zh_TW.po381
-rwxr-xr-xmodules/spreadsheet/macros/buildmacros.bat11
-rwxr-xr-xmodules/spreadsheet/macros/buildmacros.sce15
-rwxr-xr-xmodules/spreadsheet/macros/cleanmacros.bat13
-rwxr-xr-xmodules/spreadsheet/macros/libbin0 -> 304 bytes
-rwxr-xr-xmodules/spreadsheet/macros/names1
-rwxr-xr-xmodules/spreadsheet/macros/readxls.binbin0 -> 3424 bytes
-rwxr-xr-xmodules/spreadsheet/macros/readxls.sci33
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_csv_helpers.Plo293
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_spreadsheet.Plo275
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvDefault.Plo317
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvRead.Plo336
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvStringToDouble.Plo310
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvTextScan.Plo319
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvWrite.Plo316
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_open.Plo276
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_read.Plo245
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_csv_helpers.obin0 -> 31456 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_spreadsheet.obin0 -> 7088 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvDefault.obin0 -> 49368 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvRead.obin0 -> 35720 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvStringToDouble.obin0 -> 11472 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvTextScan.obin0 -> 27064 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvWrite.obin0 -> 26240 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_open.obin0 -> 24856 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_read.obin0 -> 15232 bytes
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/gw_csv_helpers.c466
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/gw_csv_helpers.h50
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/gw_spreadsheet.c46
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo12
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_csvDefault.c395
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_csvRead.c546
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_csvStringToDouble.c129
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_csvTextScan.c374
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_csvWrite.c328
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_xls_open.c250
-rwxr-xr-xmodules/spreadsheet/sci_gateway/c/sci_xls_read.c99
-rwxr-xr-xmodules/spreadsheet/sci_gateway/spreadsheet_gateway.xml41
-rwxr-xr-xmodules/spreadsheet/spreadsheet.iss44
-rwxr-xr-xmodules/spreadsheet/spreadsheet.vcxproj281
-rwxr-xr-xmodules/spreadsheet/spreadsheet.vcxproj.filters181
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo109
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvDefault.Plo106
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvRead.Plo205
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvWrite.Plo244
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-getRange.Plo113
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-splitLine.Plo146
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-utftolatin.Plo104
-rwxr-xr-xmodules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-xls.Plo210
-rwxr-xr-xmodules/spreadsheet/src/c/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-checkCsvWriteFormat.obin0 -> 9616 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvDefault.obin0 -> 25936 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvRead.obin0 -> 45240 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvWrite.obin0 -> 45280 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-getRange.obin0 -> 15032 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-splitLine.obin0 -> 19488 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-utftolatin.obin0 -> 9304 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-xls.obin0 -> 44280 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/DllmainSpreadsheet.c33
-rwxr-xr-xmodules/spreadsheet/src/c/checkCsvWriteFormat.c99
-rwxr-xr-xmodules/spreadsheet/src/c/checkCsvWriteFormat.h27
-rwxr-xr-xmodules/spreadsheet/src/c/csvDefault.c439
-rwxr-xr-xmodules/spreadsheet/src/c/csvDefault.h45
-rwxr-xr-xmodules/spreadsheet/src/c/csvRead.c723
-rwxr-xr-xmodules/spreadsheet/src/c/csvRead.h55
-rwxr-xr-xmodules/spreadsheet/src/c/csvWrite.c557
-rwxr-xr-xmodules/spreadsheet/src/c/csvWrite.h60
-rwxr-xr-xmodules/spreadsheet/src/c/getRange.c181
-rwxr-xr-xmodules/spreadsheet/src/c/getRange.h47
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-csvDefault.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-csvRead.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-csvWrite.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-getRange.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-splitLine.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-utftolatin.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/libscispreadsheet_algo_la-xls.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bt-int.Plo115
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bytedecoders.Plo54
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-logger.Plo187
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ole.Plo195
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-olestream-unwrap.Plo185
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-pldstr.Plo146
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ripole.Plo150
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.dirstamp0
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bt-int.obin0 -> 11256 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bytedecoders.obin0 -> 6024 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-logger.obin0 -> 20896 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ole.obin0 -> 105712 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-olestream-unwrap.obin0 -> 23592 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-pldstr.obin0 -> 31640 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ripole.obin0 -> 15536 bytes
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/LICENSE.ripole33
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/bt-int.c130
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/bt-int.h15
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/bytedecoders.c77
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/bytedecoders.h26
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bt-int.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-logger.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ole.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-pldstr.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ripole.lo12
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/logger.c379
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/logger.h29
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/ole.c2136
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/ole.h173
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/olestream-unwrap.c400
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/olestream-unwrap.h28
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/pldstr.c908
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/pldstr.h40
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/ripole.c201
-rwxr-xr-xmodules/spreadsheet/src/c/ripole/ripole.h37
-rwxr-xr-xmodules/spreadsheet/src/c/splitLine.c241
-rwxr-xr-xmodules/spreadsheet/src/c/splitLine.h30
-rwxr-xr-xmodules/spreadsheet/src/c/spreadsheet.rc97
-rwxr-xr-xmodules/spreadsheet/src/c/utftolatin.c223
-rwxr-xr-xmodules/spreadsheet/src/c/utftolatin.h27
-rwxr-xr-xmodules/spreadsheet/src/c/xls.c1131
-rwxr-xr-xmodules/spreadsheet/src/c/xls.h30
-rwxr-xr-xmodules/spreadsheet/src/nospreadsheet/nospreadsheet.c23
-rwxr-xr-xmodules/spreadsheet/src/nospreadsheet/nospreadsheet.rc97
-rwxr-xr-xmodules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj191
-rwxr-xr-xmodules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj.filters30
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_1.csv7534
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_1.dia.ref14
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_1.tst14
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_10556.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_10556.tst23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_10556.xlsbin0 -> 13824 bytes
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11890.dia.ref34
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11890.tst37
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11976.dia.ref21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11976.tst22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11991.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11991.tst23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11999.csv3
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11999.dia.ref27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_11999.tst28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12076.csv3
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12076.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12076.tst22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12085.dia.ref32
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12085.tst38
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12140.csv2
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12140.dia.ref30
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12140.tst34
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12144.dia.ref30
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12144.tst32
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12220.dia.ref27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12220.tst31
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12246.tst26
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12246.xlsbin0 -> 124416 bytes
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12360.dia.ref20
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12360.ref.csv1
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12360.tst23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12475.csv2
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12475.dia.ref19
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12475.tst23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12714.dia.ref23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_12714.tst28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_13144.dia.ref42
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_13144.tst52
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_13272.dia.ref24
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_13272.tst27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_1858.dia.ref19
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_1858.tst21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_2.csv100
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_2.dia.ref15
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_2.tst15
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_3.csv401
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_3.dia.ref14
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_3.tst14
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4.dia.ref63
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4.tst63
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4_longline_1.csv1
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4_longline_2.csv1
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4_shortline_1.csv1
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_4_shortline_2.csv1
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_5.csv372
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_5.dia.ref29
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_5.tst29
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_5615.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_5615.tst25
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_6.dia.ref10
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_6.tst10
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_6734.dia.ref21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_6734.tst21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_7003.csv401
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_7003.dia.ref35
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_7003.tst42
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8349.dia.ref49
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8349.tst56
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8532.dia.ref24
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8532.tst28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8651.dia.ref21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8651.tst22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8653.dia.ref23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8653.tst27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8654.dia.ref27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8654.tst28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8656.dia.ref26
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/bug_8656.tst28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/emptyfields.csv2
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/emptyfields.dia.ref7
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/emptyfields.tst8
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_194.tst32
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_245.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_245.tst27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_275.dia.ref57
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_275.tst59
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_281.dia.ref72
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_281.tst76
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_297.dia.ref40
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_297.tst35
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_298.dia.ref64
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_298.tst64
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_299.dia.ref23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_299.tst26
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_350.dia.ref17
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_350.tst19
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_351.dia.ref17
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_351.tst19
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_352.dia.ref56
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_352.tst59
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_353.dia.ref21
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_353.tst23
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_360.dia.ref38
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_360.tst40
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_472.dia.ref26
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_472.tst30
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_481.dia.ref22
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_481.tst27
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_644.csv2
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_644.dia.ref29
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_644.tst35
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_674.dia.ref25
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_674.tst18
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_684.txt43
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_715.dia.ref17
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_715.tst17
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_715.txt4001
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_745.dia.ref28
-rwxr-xr-xmodules/spreadsheet/tests/nonreg_tests/ticket_745.tst29
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/K_1.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/K_2.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/K_3.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/K_4.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/M_1.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/M_2.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/M_3.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/M_4.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/N_1.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/N_2.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/N_3.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/N_4.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/S_1.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/S_2.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/S_3.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/S_4.csv2
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/complex.csv5
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/complexdata.csv3
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvDefault.dia.ref31
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvDefault.tst34
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvIsnum.dia.ref35
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvIsnum.tst38
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead.dia.ref97
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead.tst98
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_range.dia.ref87
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_range.tst103
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_regexp.dia.ref20
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_regexp.tst21
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.dia.ref101
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.tst26
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvTextScan.dia.ref140
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvTextScan.tst140
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvWrite.dia.ref116
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csvWrite.tst119
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csv_regexp.csv7
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csv_stringToDouble.dia.ref203
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csv_stringToDouble.tst203
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csv_tools.dia.ref44
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/csv_tools.tst45
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/data.csv1
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/double_quotes.csv5
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/readwrite_csv.dia.ref17
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/readwrite_csv.tst22
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/readxls.dia.ref27
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/readxls.tst33
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/readxls.xlsbin0 -> 13824 bytes
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/xls_open.dia.ref29
-rwxr-xr-xmodules/spreadsheet/tests/unit_tests/xls_open.tst32
377 files changed, 49309 insertions, 0 deletions
diff --git a/modules/spreadsheet/.libs/libscispreadsheet-algo.a b/modules/spreadsheet/.libs/libscispreadsheet-algo.a
new file mode 100755
index 000000000..aee44fc72
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet-algo.a
Binary files differ
diff --git a/modules/spreadsheet/.libs/libscispreadsheet-algo.la b/modules/spreadsheet/.libs/libscispreadsheet-algo.la
new file mode 120000
index 000000000..be0a7662e
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet-algo.la
@@ -0,0 +1 @@
+../libscispreadsheet-algo.la \ No newline at end of file
diff --git a/modules/spreadsheet/.libs/libscispreadsheet.la b/modules/spreadsheet/.libs/libscispreadsheet.la
new file mode 120000
index 000000000..e33e9971e
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet.la
@@ -0,0 +1 @@
+../libscispreadsheet.la \ No newline at end of file
diff --git a/modules/spreadsheet/.libs/libscispreadsheet.lai b/modules/spreadsheet/.libs/libscispreadsheet.lai
new file mode 100755
index 000000000..3e99f95cb
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet.lai
@@ -0,0 +1,41 @@
+# libscispreadsheet.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libscispreadsheet.so.5'
+
+# Names of this library.
+library_names='libscispreadsheet.so.5.5.2 libscispreadsheet.so.5 libscispreadsheet.so'
+
+# The name of the static archive.
+old_library=''
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscispreadsheet.
+current=10
+age=5
+revision=2
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib/scilab'
diff --git a/modules/spreadsheet/.libs/libscispreadsheet.so b/modules/spreadsheet/.libs/libscispreadsheet.so
new file mode 120000
index 000000000..da6b4e307
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet.so
@@ -0,0 +1 @@
+libscispreadsheet.so.5.5.2 \ No newline at end of file
diff --git a/modules/spreadsheet/.libs/libscispreadsheet.so.5 b/modules/spreadsheet/.libs/libscispreadsheet.so.5
new file mode 120000
index 000000000..da6b4e307
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet.so.5
@@ -0,0 +1 @@
+libscispreadsheet.so.5.5.2 \ No newline at end of file
diff --git a/modules/spreadsheet/.libs/libscispreadsheet.so.5.5.2 b/modules/spreadsheet/.libs/libscispreadsheet.so.5.5.2
new file mode 100755
index 000000000..bedc3e27d
--- /dev/null
+++ b/modules/spreadsheet/.libs/libscispreadsheet.so.5.5.2
Binary files differ
diff --git a/modules/spreadsheet/Makefile b/modules/spreadsheet/Makefile
new file mode 100755
index 000000000..7b35e6a0a
--- /dev/null
+++ b/modules/spreadsheet/Makefile
@@ -0,0 +1,1607 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# modules/spreadsheet/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+#
+# This file must be used under the terms of the CeCILL.
+# This source file is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at
+# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+#
+
+##########
+### Makefile included stuff
+### Target, variable, suffixes which are supposed to be useful in every makefile.am
+##########
+
+
+
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/scilab
+pkgincludedir = $(includedir)/scilab
+pkglibdir = $(libdir)/scilab
+pkglibexecdir = $(libexecdir)/scilab
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \
+ $(top_srcdir)/config/depcomp TODO
+am__append_1 = java
+subdir = modules/spreadsheet
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
+ $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \
+ $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \
+ $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \
+ $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \
+ $(top_srcdir)/m4/intel_compiler.m4 \
+ $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
+ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
+ $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \
+ $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \
+ $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \
+ $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkglibdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_etcdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_rootdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+libscispreadsheet_algo_la_LIBADD =
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_1 = src/c/libscispreadsheet_algo_la-xls.lo \
+ src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo \
+ src/c/libscispreadsheet_algo_la-csvDefault.lo \
+ src/c/libscispreadsheet_algo_la-csvRead.lo \
+ src/c/libscispreadsheet_algo_la-csvWrite.lo \
+ src/c/libscispreadsheet_algo_la-getRange.lo \
+ src/c/libscispreadsheet_algo_la-splitLine.lo \
+ src/c/libscispreadsheet_algo_la-utftolatin.lo
+am__objects_2 = \
+ src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo \
+ src/c/ripole/libscispreadsheet_algo_la-pldstr.lo \
+ src/c/ripole/libscispreadsheet_algo_la-ole.lo \
+ src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo \
+ src/c/ripole/libscispreadsheet_algo_la-logger.lo \
+ src/c/ripole/libscispreadsheet_algo_la-ripole.lo \
+ src/c/ripole/libscispreadsheet_algo_la-bt-int.lo
+am_libscispreadsheet_algo_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2)
+libscispreadsheet_algo_la_OBJECTS = \
+ $(am_libscispreadsheet_algo_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libscispreadsheet_la_DEPENDENCIES = libscispreadsheet-algo.la
+am__objects_3 = sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo \
+ sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo
+am_libscispreadsheet_la_OBJECTS = $(am__objects_3)
+libscispreadsheet_la_OBJECTS = $(am_libscispreadsheet_la_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/modules/core/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libscispreadsheet_algo_la_SOURCES) \
+ $(libscispreadsheet_la_SOURCES)
+DIST_SOURCES = $(libscispreadsheet_algo_la_SOURCES) \
+ $(libscispreadsheet_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(libscispreadsheet_la_etc_DATA) \
+ $(libscispreadsheet_la_root_DATA) \
+ $(libscispreadsheet_la_sci_gateway_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing aclocal-1.14
+ALL_LINGUAS = en_US fr_FR zh_CN zh_TW ru_RU ca_ES de_DE es_ES pt_BR ja_JP it_IT uk_UA pl_PL cs_CZ
+ALL_LINGUAS_DOC = en_US fr_FR pt_BR ja_JP ru_RU
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+ANT = /usr/bin/ant
+ANTLR = /usr/share/java/antlr.jar
+AR = ar
+ARPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -larpack
+ASM3 = /usr/share/java/asm3-3.3.2.jar
+AUTOCONF = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoconf
+AUTOHEADER = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoheader
+AUTOMAKE = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing automake-1.14
+AVALON_FRAMEWORK = /home/shashank/scilab-master_5.5.2/thirdparty/avalon-framework.jar
+AWK = mawk
+BATIK = /home/shashank/scilab-master_5.5.2/thirdparty/batik-all-1.7.jar
+BLAS_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lblas
+CC = gcc
+CCACHE =
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CHECKSTYLE =
+COBERTURA = /usr/share/java/cobertura.jar
+COMMONS_BEANUTILS =
+COMMONS_IO = /home/shashank/scilab-master_5.5.2/thirdparty/commons-io.jar
+COMMONS_LOGGING = /home/shashank/scilab-master_5.5.2/thirdparty/commons-logging.jar
+CPP = gcc -E
+CPPFLAGS =
+CURL_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+CURL_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/curl-config
+CURL_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lcurl -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lssl -lcrypto -lrt -lz
+CURL_VERSION = libcurl 7.19.7
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEMOTOOLS_ENABLE = yes
+DEPDIR = .deps
+DLLTOOL = false
+DOCBOOK_ROOT = /home/shashank/scilab-master_5.5.2/thirdparty/docbook/
+DOXYGEN_BIN =
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+ECJ = /home/shashank/scilab-master_5.5.2/thirdparty/ecj.jar
+EGREP = /bin/grep -E
+EXEEXT =
+F77 = gfortran
+FFLAGS = -g -O2
+FFTW3_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lfftw3
+FFTW_ENABLE = yes
+FGREP = /bin/grep -F
+FLEXDOCK = /home/shashank/scilab-master_5.5.2/thirdparty/flexdock-1.2.4.jar
+FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lpthread -ldl -lcurses -lgfortran -lm -lquadmath
+FOP = /home/shashank/scilab-master_5.5.2/thirdparty/fop.jar
+FREEHEP_GRAPHICS2D = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphics2d.jar
+FREEHEP_GRAPHICSIO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio.jar
+FREEHEP_GRAPHICSIO_EMF = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio-emf.jar
+FREEHEP_IO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-io.jar
+FREEHEP_UTIL = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-util.jar
+GENHTML =
+GETTEXT_MACRO_VERSION = 0.19
+GIWS_BIN =
+GLUEGEN2_RT = /home/shashank/scilab-master_5.5.2/thirdparty/gluegen2-rt.jar
+GMSGFMT = /usr/bin/msgfmt
+GMSGFMT_015 = /usr/bin/msgfmt
+GRAPHICS_ENABLE = yes
+GREP = /bin/grep
+GUI_ENABLE = yes
+HDF5_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+HDF5_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lhdf5 -lhdf5_hl
+HELP_ENABLE = yes
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INTLLIBS =
+INTL_MACOSX_LIBS =
+JAR = /usr/lib/jvm/java-8-openjdk-amd64/bin/jar
+JAVA = /usr/lib/jvm/java-8-openjdk-amd64/bin/java
+JAVAC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
+JAVAC_DEBUG = off
+JAVADOC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc
+JAVAH = /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
+JAVASCI_ENABLE = yes
+JAVA_ENABLE = yes
+JAVA_G = /usr/lib/jvm/java-8-openjdk-amd64/bin/java
+JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
+JAVA_JNI_INCLUDE = -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux
+JAVA_JNI_LIBS = -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64 -ljava -lverify -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server -ljvm
+JDB = /usr/lib/jvm/java-8-openjdk-amd64/bin/jdb
+JEUCLID_CORE = /home/shashank/scilab-master_5.5.2/thirdparty/jeuclid-core.jar
+JGRAPHX = /home/shashank/scilab-master_5.5.2/thirdparty/jgraphx.jar
+JHALL = /home/shashank/scilab-master_5.5.2/thirdparty/jhall.jar
+JLATEXMATH = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-1.0.3.jar
+JLATEXMATH_FOP = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-fop-1.0.3.jar
+JOGL2 = /home/shashank/scilab-master_5.5.2/thirdparty/jogl2.jar
+JROSETTA_API = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-API.jar
+JROSETTA_ENGINE = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-engine.jar
+JUNIT4 = /usr/share/java/junit4.jar
+LAPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -llapack
+LCOV =
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = -Wl,--no-as-needed
+LIBICONV = -liconv
+LIBINTL =
+LIBM = -lm
+LIBOBJS =
+LIBS = -lpthread -ldl -lcurses -lm
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LOGGING_LEVEL = SEVERE
+LOOKS = /home/shashank/scilab-master_5.5.2/thirdparty/looks-2.1.1.jar
+LTLIBICONV = -liconv
+LTLIBINTL =
+LTLIBOBJS =
+MAINT = #
+MAKEINFO = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing makeinfo
+MANIFEST_TOOL = :
+MATIO_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+MATIO_ENABLE = yes
+MATIO_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lm -lz -lmatio -lhdf5
+MKDIR_P = /bin/mkdir -p
+MPI_ENABLE = no
+MSGCAT = /usr/bin/msgcat
+MSGFMT = /usr/bin/msgfmt
+MSGFMT_015 = /usr/bin/msgfmt
+MSGMERGE = /usr/bin/msgmerge
+NM = nm
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OCAMLC = ocamlc
+OCAMLDEP = ocamldep
+OCAMLLEX = ocamllex
+OCAMLOPT = ocamlopt
+OCAMLYACC = ocamlyacc
+OPENMPI_CC =
+OPENMPI_CFLAGS =
+OPENMPI_CXX =
+OPENMPI_CXXFLAGS =
+OPENMPI_LIBS =
+OPENMP_CFLAGS = -fopenmp
+OPENMP_CXXFLAGS = -fopenmp
+OPENMP_ENABLE = yes
+OPENMP_LIBS = -lgomp -lstdc++
+OTOOL =
+OTOOL64 =
+PACKAGE = scilab
+PACKAGE_BUGREPORT = http://bugzilla.scilab.org/
+PACKAGE_NAME = Scilab
+PACKAGE_STRING = Scilab 5
+PACKAGE_TARNAME = scilab
+PACKAGE_URL =
+PACKAGE_VERSION = 5
+PATH_SEPARATOR = :
+PCRE_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+PCRE_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/pcre-config
+PCRE_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lpcreposix -lpcre
+PCRE_VERSION = 8.35
+PKG_CONFIG = /usr/bin/pkg-config
+POSUB = po
+POW_LIB =
+PYTHON =
+RANLIB = ranlib
+RELOCATABLE = no
+RT_LIB = -lrt
+SAXON = /home/shashank/scilab-master_5.5.2/thirdparty/saxon9he.jar
+SCILAB_BINARY_VERSION = 5.5.2
+SCILAB_LIBRARY_VERSION = 5:5:2
+SCILAB_VERSION_MAINTENANCE = 2
+SCILAB_VERSION_MAJOR = 5
+SCILAB_VERSION_MINOR = 5
+SCIRENDERER = ${modules.dir}/scirenderer/${build.jar.dir}/scirenderer.jar
+SCIRENDERER_CP = $SCILAB/modules/scirenderer/jar/scirenderer.jar
+SCI_CFLAGS = -D_LARGEFILE64_SOURCE -DNDEBUG -m64 -fno-stack-protector
+SCI_CXXFLAGS = -DNDEBUG -fno-stack-protector
+SCI_FFLAGS = -DNDEBUG -m64 -fPIC
+SCI_LDFLAGS =
+SED = /bin/sed
+SET_MAKE =
+SET_RELOCATABLE =
+SHELL = /bin/bash
+SKINLF = /home/shashank/scilab-master_5.5.2/thirdparty/skinlf.jar
+SPLINT = no
+STRIP = strip
+SWIG_BIN =
+SWIG_JAVA =
+SWIG_RUNTIME_LIBS_DIR =
+SWIG_SCILAB =
+TCLTK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -ltk8.5 -L/home/shashank/scilab-master_5.5.2/usr/lib -ltcl8.5 -ldl
+TCL_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include
+TK_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include
+UMFPACK_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+UMFPACK_ENABLE = yes
+UMFPACK_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lumfpack -lamd
+USE_NLS = yes
+VERSION = 5
+WITH_OCAML =
+WITH_TKSCI = yes
+XCOS_ENABLE = yes
+XGETTEXT = /usr/bin/xgettext
+XGETTEXT_015 = /usr/bin/xgettext
+XGETTEXT_EXTRA_OPTIONS =
+XMKMF =
+XMLGRAPHICS_COMMONS = /home/shashank/scilab-master_5.5.2/thirdparty/xmlgraphics-commons-1.4.jar
+XML_APIS_EXT = /home/shashank/scilab-master_5.5.2/thirdparty/xml-apis-ext.jar
+XML_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/xml2-config
+XML_FLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include/libxml2
+XML_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lxml2 -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lz -lm -ldl
+XML_VERSION = 2.9.1
+X_CFLAGS =
+X_EXTRA_LIBS =
+X_LIBS =
+X_PRE_LIBS =
+abs_builddir = /home/shashank/scilab-master_5.5.2/modules/spreadsheet
+abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/spreadsheet
+abs_top_builddir = /home/shashank/scilab-master_5.5.2
+abs_top_srcdir = /home/shashank/scilab-master_5.5.2
+ac_ct_AR = ar
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias =
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+cxx_present = yes
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias =
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/shashank/scilab-master_5.5.2/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+SPREADSHEET_C_SOURCES = \
+src/c/xls.c \
+src/c/checkCsvWriteFormat.c \
+src/c/csvDefault.c \
+src/c/csvRead.c \
+src/c/csvWrite.c \
+src/c/getRange.c \
+src/c/splitLine.c \
+src/c/utftolatin.c
+
+RIPOLE_SOURCES = \
+src/c/ripole/olestream-unwrap.c \
+src/c/ripole/pldstr.c \
+src/c/ripole/ole.c \
+src/c/ripole/bytedecoders.c \
+src/c/ripole/logger.c \
+src/c/ripole/ripole.c \
+src/c/ripole/bt-int.c
+
+GATEWAY_C_SOURCES = \
+sci_gateway/c/gw_spreadsheet.c \
+sci_gateway/c/sci_xls_read.c \
+sci_gateway/c/sci_xls_open.c \
+sci_gateway/c/gw_csv_helpers.c \
+sci_gateway/c/sci_csvDefault.c \
+sci_gateway/c/sci_csvRead.c \
+sci_gateway/c/sci_csvStringToDouble.c \
+sci_gateway/c/sci_csvTextScan.c \
+sci_gateway/c/sci_csvWrite.c
+
+libscispreadsheet_la_CPPFLAGS = \
+-I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(srcdir)/src/c/ripole \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/io/includes/ \
+-I$(top_srcdir)/modules/string/src/c/ \
+-I$(top_srcdir)/modules/string/includes/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/fileio/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscispreadsheet.la
+noinst_LTLIBRARIES = libscispreadsheet-algo.la
+libscispreadsheet_algo_la_SOURCES = $(SPREADSHEET_C_SOURCES) $(RIPOLE_SOURCES)
+libscispreadsheet_la_SOURCES = $(GATEWAY_C_SOURCES)
+libscispreadsheet_algo_la_CPPFLAGS = $(libscispreadsheet_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC = $(SPREADSHEET_C_SOURCES) $(GATEWAY_C_SOURCES) $(RIPOLE_SOURCES)
+INCLUDE_FLAGS = $(libscispreadsheet_la_CPPFLAGS)
+libscispreadsheet_la_LIBADD = libscispreadsheet-algo.la
+
+#### Target ######
+modulename = spreadsheet
+
+#### spreadsheet : Conf files ####
+libscispreadsheet_la_rootdir = $(mydatadir)
+libscispreadsheet_la_root_DATA = license.txt
+
+####�spreadsheet : init scripts ####
+libscispreadsheet_la_etcdir = $(mydatadir)/etc
+libscispreadsheet_la_etc_DATA = etc/spreadsheet.quit etc/spreadsheet.start
+
+####�spreadsheet : gateway declaration ####
+libscispreadsheet_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscispreadsheet_la_sci_gateway_DATA = sci_gateway/spreadsheet_gateway.xml
+
+# Where all the Scilab stuff is installed (macros, help, ...)
+mydatadir = $(pkgdatadir)/modules/$(modulename)
+
+# Set AM_* SCI detected settings
+AM_CPPFLAGS = $(SCI_CPPFLAGS)
+AM_CFLAGS = $(SCI_CFLAGS)
+AM_CXXFLAGS = $(SCI_CXXFLAGS)
+# append includes to AM_FFLAGS to manage fortran includes
+AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/
+
+# Tag shared libraries with the Scilab version
+AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION)
+
+# splint options
+SPLINT_OPTIONS = -weak -booltype BOOL
+
+########################### JAVA ######################################
+#### We are delegating java compilation to ant... Thanks to that
+#### the procedure will be the same with Microsoft Windows (C)
+#### and Linux/Unix
+#######################################################################
+TARGETS_ALL = $(am__append_1)
+
+################ MACROS ######################
+# Rule to build a macro
+# NOT USED AT THE MOMENT
+SUFFIXES = .sci
+
+########### INSTALL DOCUMENTATION ###################
+
+# Install documentation files into the right target
+# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
+# automake needs the html files to be present which is not the case when
+# we are building Scilab
+
+# Where it should be installed
+pkgdocdir = $(mydatadir)
+
+# What is the mask of the help source
+DOCMASKXML = *.xml
+
+# What is the mask of the MathML sources
+DOCMASKMML = *.mml
+
+########### INSTALL DATA ###################
+# Install macros, help & demos
+# Where it should be installed
+pkgmacrosdir = $(mydatadir)
+# Which directory we process
+MACRODIRS = macros/
+# Mask of the Scilab sources macros
+MACROMASK = *.sci
+# Mask of the Scilab executable sources macros
+MACROBUILDMASK = *.sce
+# Mask of the Scilab compiled macros
+MACROBINMASK = *.bin
+# List of the standard directory for tests
+TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
+# Where the demos should be installed
+pkgdemosdir = $(mydatadir)
+# List of the standard directory for demos
+DEMOS_DIR = demos
+# List of the standard directory for examples
+EXAMPLES_DIR = examples
+# Where to export JAVA archives (.jar)
+JARDIR = jar/
+# JAR files mask
+JARMASK = *.jar
+# Chapter file
+HELP_CHAPTERDIR = help/
+HELP_CHAPTERFILE = addchapter.sce
+HELP_CHAPTERLANG = en_US fr_FR pt_BR
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sci .bin .c .lo .o .obj
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/spreadsheet/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign modules/spreadsheet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/Makefile.incl.am:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: # $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+src/c/$(am__dirstamp):
+ @$(MKDIR_P) src/c
+ @: > src/c/$(am__dirstamp)
+src/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/$(DEPDIR)
+ @: > src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-xls.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo: \
+ src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvDefault.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvRead.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvWrite.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-getRange.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-splitLine.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-utftolatin.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/$(am__dirstamp):
+ @$(MKDIR_P) src/c/ripole
+ @: > src/c/ripole/$(am__dirstamp)
+src/c/ripole/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/ripole/$(DEPDIR)
+ @: > src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-pldstr.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-ole.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-logger.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-ripole.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-bt-int.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+
+libscispreadsheet-algo.la: $(libscispreadsheet_algo_la_OBJECTS) $(libscispreadsheet_algo_la_DEPENDENCIES) $(EXTRA_libscispreadsheet_algo_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libscispreadsheet_algo_la_OBJECTS) $(libscispreadsheet_algo_la_LIBADD) $(LIBS)
+sci_gateway/c/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c
+ @: > sci_gateway/c/$(am__dirstamp)
+sci_gateway/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c/$(DEPDIR)
+ @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+
+libscispreadsheet.la: $(libscispreadsheet_la_OBJECTS) $(libscispreadsheet_la_DEPENDENCIES) $(EXTRA_libscispreadsheet_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(pkglibdir) $(libscispreadsheet_la_OBJECTS) $(libscispreadsheet_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f sci_gateway/c/*.$(OBJEXT)
+ -rm -f sci_gateway/c/*.lo
+ -rm -f src/c/*.$(OBJEXT)
+ -rm -f src/c/*.lo
+ -rm -f src/c/ripole/*.$(OBJEXT)
+ -rm -f src/c/ripole/*.lo
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Plo
+include sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Plo
+include src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Plo
+include src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Plo
+
+.c.o:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Plo
+# $(AM_V_CC)source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
+
+src/c/libscispreadsheet_algo_la-xls.lo: src/c/xls.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-xls.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Tpo -c -o src/c/libscispreadsheet_algo_la-xls.lo `test -f 'src/c/xls.c' || echo '$(srcdir)/'`src/c/xls.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Plo
+# $(AM_V_CC)source='src/c/xls.c' object='src/c/libscispreadsheet_algo_la-xls.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-xls.lo `test -f 'src/c/xls.c' || echo '$(srcdir)/'`src/c/xls.c
+
+src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo: src/c/checkCsvWriteFormat.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Tpo -c -o src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo `test -f 'src/c/checkCsvWriteFormat.c' || echo '$(srcdir)/'`src/c/checkCsvWriteFormat.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo
+# $(AM_V_CC)source='src/c/checkCsvWriteFormat.c' object='src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo `test -f 'src/c/checkCsvWriteFormat.c' || echo '$(srcdir)/'`src/c/checkCsvWriteFormat.c
+
+src/c/libscispreadsheet_algo_la-csvDefault.lo: src/c/csvDefault.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvDefault.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Tpo -c -o src/c/libscispreadsheet_algo_la-csvDefault.lo `test -f 'src/c/csvDefault.c' || echo '$(srcdir)/'`src/c/csvDefault.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Plo
+# $(AM_V_CC)source='src/c/csvDefault.c' object='src/c/libscispreadsheet_algo_la-csvDefault.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvDefault.lo `test -f 'src/c/csvDefault.c' || echo '$(srcdir)/'`src/c/csvDefault.c
+
+src/c/libscispreadsheet_algo_la-csvRead.lo: src/c/csvRead.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvRead.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Tpo -c -o src/c/libscispreadsheet_algo_la-csvRead.lo `test -f 'src/c/csvRead.c' || echo '$(srcdir)/'`src/c/csvRead.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Plo
+# $(AM_V_CC)source='src/c/csvRead.c' object='src/c/libscispreadsheet_algo_la-csvRead.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvRead.lo `test -f 'src/c/csvRead.c' || echo '$(srcdir)/'`src/c/csvRead.c
+
+src/c/libscispreadsheet_algo_la-csvWrite.lo: src/c/csvWrite.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvWrite.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Tpo -c -o src/c/libscispreadsheet_algo_la-csvWrite.lo `test -f 'src/c/csvWrite.c' || echo '$(srcdir)/'`src/c/csvWrite.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Plo
+# $(AM_V_CC)source='src/c/csvWrite.c' object='src/c/libscispreadsheet_algo_la-csvWrite.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvWrite.lo `test -f 'src/c/csvWrite.c' || echo '$(srcdir)/'`src/c/csvWrite.c
+
+src/c/libscispreadsheet_algo_la-getRange.lo: src/c/getRange.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-getRange.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Tpo -c -o src/c/libscispreadsheet_algo_la-getRange.lo `test -f 'src/c/getRange.c' || echo '$(srcdir)/'`src/c/getRange.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Plo
+# $(AM_V_CC)source='src/c/getRange.c' object='src/c/libscispreadsheet_algo_la-getRange.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-getRange.lo `test -f 'src/c/getRange.c' || echo '$(srcdir)/'`src/c/getRange.c
+
+src/c/libscispreadsheet_algo_la-splitLine.lo: src/c/splitLine.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-splitLine.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Tpo -c -o src/c/libscispreadsheet_algo_la-splitLine.lo `test -f 'src/c/splitLine.c' || echo '$(srcdir)/'`src/c/splitLine.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Plo
+# $(AM_V_CC)source='src/c/splitLine.c' object='src/c/libscispreadsheet_algo_la-splitLine.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-splitLine.lo `test -f 'src/c/splitLine.c' || echo '$(srcdir)/'`src/c/splitLine.c
+
+src/c/libscispreadsheet_algo_la-utftolatin.lo: src/c/utftolatin.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-utftolatin.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Tpo -c -o src/c/libscispreadsheet_algo_la-utftolatin.lo `test -f 'src/c/utftolatin.c' || echo '$(srcdir)/'`src/c/utftolatin.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Plo
+# $(AM_V_CC)source='src/c/utftolatin.c' object='src/c/libscispreadsheet_algo_la-utftolatin.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-utftolatin.lo `test -f 'src/c/utftolatin.c' || echo '$(srcdir)/'`src/c/utftolatin.c
+
+src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo: src/c/ripole/olestream-unwrap.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo `test -f 'src/c/ripole/olestream-unwrap.c' || echo '$(srcdir)/'`src/c/ripole/olestream-unwrap.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Plo
+# $(AM_V_CC)source='src/c/ripole/olestream-unwrap.c' object='src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo `test -f 'src/c/ripole/olestream-unwrap.c' || echo '$(srcdir)/'`src/c/ripole/olestream-unwrap.c
+
+src/c/ripole/libscispreadsheet_algo_la-pldstr.lo: src/c/ripole/pldstr.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-pldstr.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-pldstr.lo `test -f 'src/c/ripole/pldstr.c' || echo '$(srcdir)/'`src/c/ripole/pldstr.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Plo
+# $(AM_V_CC)source='src/c/ripole/pldstr.c' object='src/c/ripole/libscispreadsheet_algo_la-pldstr.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-pldstr.lo `test -f 'src/c/ripole/pldstr.c' || echo '$(srcdir)/'`src/c/ripole/pldstr.c
+
+src/c/ripole/libscispreadsheet_algo_la-ole.lo: src/c/ripole/ole.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-ole.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-ole.lo `test -f 'src/c/ripole/ole.c' || echo '$(srcdir)/'`src/c/ripole/ole.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Plo
+# $(AM_V_CC)source='src/c/ripole/ole.c' object='src/c/ripole/libscispreadsheet_algo_la-ole.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-ole.lo `test -f 'src/c/ripole/ole.c' || echo '$(srcdir)/'`src/c/ripole/ole.c
+
+src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo: src/c/ripole/bytedecoders.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo `test -f 'src/c/ripole/bytedecoders.c' || echo '$(srcdir)/'`src/c/ripole/bytedecoders.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Plo
+# $(AM_V_CC)source='src/c/ripole/bytedecoders.c' object='src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo `test -f 'src/c/ripole/bytedecoders.c' || echo '$(srcdir)/'`src/c/ripole/bytedecoders.c
+
+src/c/ripole/libscispreadsheet_algo_la-logger.lo: src/c/ripole/logger.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-logger.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-logger.lo `test -f 'src/c/ripole/logger.c' || echo '$(srcdir)/'`src/c/ripole/logger.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Plo
+# $(AM_V_CC)source='src/c/ripole/logger.c' object='src/c/ripole/libscispreadsheet_algo_la-logger.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-logger.lo `test -f 'src/c/ripole/logger.c' || echo '$(srcdir)/'`src/c/ripole/logger.c
+
+src/c/ripole/libscispreadsheet_algo_la-ripole.lo: src/c/ripole/ripole.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-ripole.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-ripole.lo `test -f 'src/c/ripole/ripole.c' || echo '$(srcdir)/'`src/c/ripole/ripole.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Plo
+# $(AM_V_CC)source='src/c/ripole/ripole.c' object='src/c/ripole/libscispreadsheet_algo_la-ripole.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-ripole.lo `test -f 'src/c/ripole/ripole.c' || echo '$(srcdir)/'`src/c/ripole/ripole.c
+
+src/c/ripole/libscispreadsheet_algo_la-bt-int.lo: src/c/ripole/bt-int.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-bt-int.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-bt-int.lo `test -f 'src/c/ripole/bt-int.c' || echo '$(srcdir)/'`src/c/ripole/bt-int.c
+ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Plo
+# $(AM_V_CC)source='src/c/ripole/bt-int.c' object='src/c/ripole/libscispreadsheet_algo_la-bt-int.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-bt-int.lo `test -f 'src/c/ripole/bt-int.c' || echo '$(srcdir)/'`src/c/ripole/bt-int.c
+
+sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo: sci_gateway/c/gw_spreadsheet.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Tpo -c -o sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo `test -f 'sci_gateway/c/gw_spreadsheet.c' || echo '$(srcdir)/'`sci_gateway/c/gw_spreadsheet.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Plo
+# $(AM_V_CC)source='sci_gateway/c/gw_spreadsheet.c' object='sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo `test -f 'sci_gateway/c/gw_spreadsheet.c' || echo '$(srcdir)/'`sci_gateway/c/gw_spreadsheet.c
+
+sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo: sci_gateway/c/sci_xls_read.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo `test -f 'sci_gateway/c/sci_xls_read.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_read.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_xls_read.c' object='sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo `test -f 'sci_gateway/c/sci_xls_read.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_read.c
+
+sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo: sci_gateway/c/sci_xls_open.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo `test -f 'sci_gateway/c/sci_xls_open.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_open.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_xls_open.c' object='sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo `test -f 'sci_gateway/c/sci_xls_open.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_open.c
+
+sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo: sci_gateway/c/gw_csv_helpers.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Tpo -c -o sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo `test -f 'sci_gateway/c/gw_csv_helpers.c' || echo '$(srcdir)/'`sci_gateway/c/gw_csv_helpers.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Plo
+# $(AM_V_CC)source='sci_gateway/c/gw_csv_helpers.c' object='sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo `test -f 'sci_gateway/c/gw_csv_helpers.c' || echo '$(srcdir)/'`sci_gateway/c/gw_csv_helpers.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo: sci_gateway/c/sci_csvDefault.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo `test -f 'sci_gateway/c/sci_csvDefault.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvDefault.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_csvDefault.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo `test -f 'sci_gateway/c/sci_csvDefault.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvDefault.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo: sci_gateway/c/sci_csvRead.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo `test -f 'sci_gateway/c/sci_csvRead.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvRead.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_csvRead.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo `test -f 'sci_gateway/c/sci_csvRead.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvRead.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo: sci_gateway/c/sci_csvStringToDouble.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo `test -f 'sci_gateway/c/sci_csvStringToDouble.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvStringToDouble.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_csvStringToDouble.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo `test -f 'sci_gateway/c/sci_csvStringToDouble.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvStringToDouble.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo: sci_gateway/c/sci_csvTextScan.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo `test -f 'sci_gateway/c/sci_csvTextScan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvTextScan.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_csvTextScan.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo `test -f 'sci_gateway/c/sci_csvTextScan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvTextScan.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo: sci_gateway/c/sci_csvWrite.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo `test -f 'sci_gateway/c/sci_csvWrite.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvWrite.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_csvWrite.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo `test -f 'sci_gateway/c/sci_csvWrite.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvWrite.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs
+ -rm -rf src/c/.libs src/c/_libs
+ -rm -rf src/c/ripole/.libs src/c/ripole/_libs
+install-libscispreadsheet_la_etcDATA: $(libscispreadsheet_la_etc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_etc_DATA)'; test -n "$(libscispreadsheet_la_etcdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_etcdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_etcdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_etcdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_etcdir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_etcDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_etc_DATA)'; test -n "$(libscispreadsheet_la_etcdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_etcdir)'; $(am__uninstall_files_from_dir)
+install-libscispreadsheet_la_rootDATA: $(libscispreadsheet_la_root_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_root_DATA)'; test -n "$(libscispreadsheet_la_rootdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_rootdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_rootdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_rootdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_rootdir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_rootDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_root_DATA)'; test -n "$(libscispreadsheet_la_rootdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_rootdir)'; $(am__uninstall_files_from_dir)
+install-libscispreadsheet_la_sci_gatewayDATA: $(libscispreadsheet_la_sci_gateway_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_sci_gateway_DATA)'; test -n "$(libscispreadsheet_la_sci_gatewaydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_sci_gatewayDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_sci_gateway_DATA)'; test -n "$(libscispreadsheet_la_sci_gatewaydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) all-local
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscispreadsheet_la_etcdir)" "$(DESTDIR)$(libscispreadsheet_la_rootdir)" "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/c/$(am__dirstamp)
+ -rm -f src/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/$(am__dirstamp)
+ -rm -f src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/ripole/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) src/c/ripole/$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-local distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local \
+ install-libscispreadsheet_la_etcDATA \
+ install-libscispreadsheet_la_rootDATA \
+ install-libscispreadsheet_la_sci_gatewayDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am: install-html-local
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) src/c/ripole/$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libscispreadsheet_la_etcDATA \
+ uninstall-libscispreadsheet_la_rootDATA \
+ uninstall-libscispreadsheet_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \
+ check-local clean clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-html-local install-info \
+ install-info-am install-libscispreadsheet_la_etcDATA \
+ install-libscispreadsheet_la_rootDATA \
+ install-libscispreadsheet_la_sci_gatewayDATA install-man \
+ install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am \
+ uninstall-libscispreadsheet_la_etcDATA \
+ uninstall-libscispreadsheet_la_rootDATA \
+ uninstall-libscispreadsheet_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+
+# This target enables tests for Scilab
+check-local: $(top_builddir)/scilab-bin test
+ if test -d $(mydatadir)/tests; then \
+ @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
+ fi
+check-code:
+ if test -f build.xml; then \
+ $(ANT) checkstyle; \
+ fi
+ if test -x "$(SPLINT)"; then \
+ $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
+ fi
+java:
+# Some configurations needs to export JAVA_HOME in the current env
+ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT); \
+ fi
+
+clean-java:
+# Some configurations needs to export JAVA_HOME in the current env
+ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) clean; \
+ fi;
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+#swig: $(SWIG_WRAPPERS)
+# @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
+# SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
+# if test -n "$(SWIG_WRAPPERS)"; then \
+# for file in $(SWIG_WRAPPERS) ; do \
+# echo "Swig process of $$file (Java) ..."; \
+# $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \
+# done; \
+# fi
+
+#swig-scilab: $(SWIG_SCILAB_WRAPPERS)
+# @SWIG_OUTDIR=src/swig/; \
+# if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \
+# for file in $(SWIG_SCILAB_WRAPPERS) ; do \
+# echo "Swig process of $$file (Scilab) ..."; \
+# $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \
+# done; \
+# fi
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+#giws: $(GIWS_WRAPPERS)
+# @GIWS_OUTPUTDIR=src/jni/; \
+# MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \
+# if test -n "$(GIWS_WRAPPERS)"; then \
+# for file in $(GIWS_WRAPPERS) ; do \
+# echo "GIWS process of $$file ..."; \
+# if test -z "$(GIWS_OPTIONS)"; then \
+# $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+# else \
+# echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \
+# $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+# fi \
+# done; \
+# fi
+
+#giws-exception:
+# @GIWS_OUTPUTDIR=src/jni/;\
+# echo "GIWS: Generation of exception class ..."; \
+# $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR
+
+macros:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been built"; \
+ else \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
+ fi)
+
+# Removes the macros
+clean-macros:
+# Removes macros (*.bin generated from .sci)
+ @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
+ rm -f $(builddir)/$$dir/$(MACROBINMASK); \
+ done
+
+test:
+# More tests could be added here
+ @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) test; \
+ fi
+
+all-local: $(TARGETS_ALL)
+
+.sci.bin:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been build"; \
+ else \
+ echo "Creating $@"; \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
+ fi )
+
+install-html-local:
+
+install-data-local-local:
+# Mainly for javasci
+ @if test -d $(srcdir)/javadoc; then \
+ cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
+ fi
+# If the user wants the help sources to be installed
+ @echo "-------- Install of XML sources of help files --------"; \
+ for lang in $(ALL_LINGUAS); do \
+ if test -d $(srcdir)/help/$$lang; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
+ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
+ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
+ done ; \
+ fi; \
+ fi; \
+ done; \
+ @echo "-------- Install of MathML sources --------"; \
+ if test -d $(srcdir)/help/mml/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
+ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
+ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
+ done ; \
+ fi; \
+ fi
+install-data-local:
+# Install the tests
+ @echo "-------- Install tests (if any) --------"; \
+ for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the help chapter
+ @echo "-------- Install the help chapter (if any) --------"; \
+ for lang in $(HELP_CHAPTERLANG); do \
+ HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
+ if test -f $$HELPFILE; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ fi; \
+ done
+# Install the demos & examples
+ @echo "-------- Install demos & examples (if any) --------"; \
+ for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the macros
+ @echo "-------- Install macros (if any) --------"; \
+ for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ if test -d $(srcdir)/$$dir/; then \
+ FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
+ if test -n "$(MACROSSPECIALEXT)"; then \
+ specialExtDir=""; \
+ for specialExt in $(MACROSSPECIALEXT); do \
+ specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
+ done; \
+ FILELIST="$$FILELIST $$specialExtDir"; \
+ fi; \
+ for file in `ls -1 $$FILELIST 2>/dev/null`; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
+ done; \
+ fi; \
+ done
+# Install java files (.jar)
+ @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
+ echo "-------- Install jar files --------"; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
+ for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
+ done ; \
+ fi
+
+########### CLEAN ###################
+# Clean help (generated automatically by Scilab)
+# It used to clean the macro (clean-macros) but this was causing
+# make clean && make to fail Scilab startup
+clean-local: clean-java
+#clean-local:
+
+distclean-local:
+ rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
+
+.PHONY: macros java swig giws
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/spreadsheet/Makefile.am b/modules/spreadsheet/Makefile.am
new file mode 100755
index 000000000..4b3857b52
--- /dev/null
+++ b/modules/spreadsheet/Makefile.am
@@ -0,0 +1,81 @@
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+
+SPREADSHEET_C_SOURCES = \
+src/c/xls.c \
+src/c/checkCsvWriteFormat.c \
+src/c/csvDefault.c \
+src/c/csvRead.c \
+src/c/csvWrite.c \
+src/c/getRange.c \
+src/c/splitLine.c \
+src/c/utftolatin.c
+
+RIPOLE_SOURCES = \
+src/c/ripole/olestream-unwrap.c \
+src/c/ripole/pldstr.c \
+src/c/ripole/ole.c \
+src/c/ripole/bytedecoders.c \
+src/c/ripole/logger.c \
+src/c/ripole/ripole.c \
+src/c/ripole/bt-int.c
+
+GATEWAY_C_SOURCES = \
+sci_gateway/c/gw_spreadsheet.c \
+sci_gateway/c/sci_xls_read.c \
+sci_gateway/c/sci_xls_open.c \
+sci_gateway/c/gw_csv_helpers.c \
+sci_gateway/c/sci_csvDefault.c \
+sci_gateway/c/sci_csvRead.c \
+sci_gateway/c/sci_csvStringToDouble.c \
+sci_gateway/c/sci_csvTextScan.c \
+sci_gateway/c/sci_csvWrite.c
+
+libscispreadsheet_la_CPPFLAGS = \
+-I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(srcdir)/src/c/ripole \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/io/includes/ \
+-I$(top_srcdir)/modules/string/src/c/ \
+-I$(top_srcdir)/modules/string/includes/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/fileio/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscispreadsheet.la
+noinst_LTLIBRARIES = libscispreadsheet-algo.la
+
+
+libscispreadsheet_algo_la_SOURCES = $(SPREADSHEET_C_SOURCES) $(RIPOLE_SOURCES)
+libscispreadsheet_la_SOURCES = $(GATEWAY_C_SOURCES)
+libscispreadsheet_algo_la_CPPFLAGS = $(libscispreadsheet_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC= $(SPREADSHEET_C_SOURCES) $(GATEWAY_C_SOURCES) $(RIPOLE_SOURCES)
+INCLUDE_FLAGS = $(libscispreadsheet_la_CPPFLAGS)
+
+libscispreadsheet_la_LIBADD = libscispreadsheet-algo.la
+
+#### Target ######
+modulename=spreadsheet
+
+
+#### spreadsheet : Conf files ####
+libscispreadsheet_la_rootdir = $(mydatadir)
+libscispreadsheet_la_root_DATA = license.txt
+
+
+####�spreadsheet : init scripts ####
+libscispreadsheet_la_etcdir = $(mydatadir)/etc
+libscispreadsheet_la_etc_DATA = etc/spreadsheet.quit etc/spreadsheet.start
+
+####�spreadsheet : gateway declaration ####
+libscispreadsheet_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscispreadsheet_la_sci_gateway_DATA = sci_gateway/spreadsheet_gateway.xml
+
+include $(top_srcdir)/Makefile.incl.am
diff --git a/modules/spreadsheet/Makefile.in b/modules/spreadsheet/Makefile.in
new file mode 100755
index 000000000..586099bce
--- /dev/null
+++ b/modules/spreadsheet/Makefile.in
@@ -0,0 +1,1607 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+#
+# This file must be used under the terms of the CeCILL.
+# This source file is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at
+# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+#
+
+##########
+### Makefile included stuff
+### Target, variable, suffixes which are supposed to be useful in every makefile.am
+##########
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \
+ $(top_srcdir)/config/depcomp TODO
+@NEED_JAVA_TRUE@am__append_1 = java
+subdir = modules/spreadsheet
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
+ $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \
+ $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \
+ $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \
+ $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \
+ $(top_srcdir)/m4/intel_compiler.m4 \
+ $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
+ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
+ $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \
+ $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \
+ $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \
+ $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkglibdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_etcdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_rootdir)" \
+ "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+libscispreadsheet_algo_la_LIBADD =
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_1 = src/c/libscispreadsheet_algo_la-xls.lo \
+ src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo \
+ src/c/libscispreadsheet_algo_la-csvDefault.lo \
+ src/c/libscispreadsheet_algo_la-csvRead.lo \
+ src/c/libscispreadsheet_algo_la-csvWrite.lo \
+ src/c/libscispreadsheet_algo_la-getRange.lo \
+ src/c/libscispreadsheet_algo_la-splitLine.lo \
+ src/c/libscispreadsheet_algo_la-utftolatin.lo
+am__objects_2 = \
+ src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo \
+ src/c/ripole/libscispreadsheet_algo_la-pldstr.lo \
+ src/c/ripole/libscispreadsheet_algo_la-ole.lo \
+ src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo \
+ src/c/ripole/libscispreadsheet_algo_la-logger.lo \
+ src/c/ripole/libscispreadsheet_algo_la-ripole.lo \
+ src/c/ripole/libscispreadsheet_algo_la-bt-int.lo
+am_libscispreadsheet_algo_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2)
+libscispreadsheet_algo_la_OBJECTS = \
+ $(am_libscispreadsheet_algo_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libscispreadsheet_la_DEPENDENCIES = libscispreadsheet-algo.la
+am__objects_3 = sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo \
+ sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo \
+ sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo
+am_libscispreadsheet_la_OBJECTS = $(am__objects_3)
+libscispreadsheet_la_OBJECTS = $(am_libscispreadsheet_la_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libscispreadsheet_algo_la_SOURCES) \
+ $(libscispreadsheet_la_SOURCES)
+DIST_SOURCES = $(libscispreadsheet_algo_la_SOURCES) \
+ $(libscispreadsheet_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(libscispreadsheet_la_etc_DATA) \
+ $(libscispreadsheet_la_root_DATA) \
+ $(libscispreadsheet_la_sci_gateway_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+ANT = @ANT@
+ANTLR = @ANTLR@
+AR = @AR@
+ARPACK_LIBS = @ARPACK_LIBS@
+ASM3 = @ASM3@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AVALON_FRAMEWORK = @AVALON_FRAMEWORK@
+AWK = @AWK@
+BATIK = @BATIK@
+BLAS_LIBS = @BLAS_LIBS@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECKSTYLE = @CHECKSTYLE@
+COBERTURA = @COBERTURA@
+COMMONS_BEANUTILS = @COMMONS_BEANUTILS@
+COMMONS_IO = @COMMONS_IO@
+COMMONS_LOGGING = @COMMONS_LOGGING@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_CONFIG = @CURL_CONFIG@
+CURL_LIBS = @CURL_LIBS@
+CURL_VERSION = @CURL_VERSION@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCBOOK_ROOT = @DOCBOOK_ROOT@
+DOXYGEN_BIN = @DOXYGEN_BIN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ = @ECJ@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FFTW3_LIB = @FFTW3_LIB@
+FFTW_ENABLE = @FFTW_ENABLE@
+FGREP = @FGREP@
+FLEXDOCK = @FLEXDOCK@
+FLIBS = @FLIBS@
+FOP = @FOP@
+FREEHEP_GRAPHICS2D = @FREEHEP_GRAPHICS2D@
+FREEHEP_GRAPHICSIO = @FREEHEP_GRAPHICSIO@
+FREEHEP_GRAPHICSIO_EMF = @FREEHEP_GRAPHICSIO_EMF@
+FREEHEP_IO = @FREEHEP_IO@
+FREEHEP_UTIL = @FREEHEP_UTIL@
+GENHTML = @GENHTML@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GIWS_BIN = @GIWS_BIN@
+GLUEGEN2_RT = @GLUEGEN2_RT@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GRAPHICS_ENABLE = @GRAPHICS_ENABLE@
+GREP = @GREP@
+GUI_ENABLE = @GUI_ENABLE@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+HELP_ENABLE = @HELP_ENABLE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAC_DEBUG = @JAVAC_DEBUG@
+JAVADOC = @JAVADOC@
+JAVAH = @JAVAH@
+JAVASCI_ENABLE = @JAVASCI_ENABLE@
+JAVA_ENABLE = @JAVA_ENABLE@
+JAVA_G = @JAVA_G@
+JAVA_HOME = @JAVA_HOME@
+JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@
+JAVA_JNI_LIBS = @JAVA_JNI_LIBS@
+JDB = @JDB@
+JEUCLID_CORE = @JEUCLID_CORE@
+JGRAPHX = @JGRAPHX@
+JHALL = @JHALL@
+JLATEXMATH = @JLATEXMATH@
+JLATEXMATH_FOP = @JLATEXMATH_FOP@
+JOGL2 = @JOGL2@
+JROSETTA_API = @JROSETTA_API@
+JROSETTA_ENGINE = @JROSETTA_ENGINE@
+JUNIT4 = @JUNIT4@
+LAPACK_LIBS = @LAPACK_LIBS@
+LCOV = @LCOV@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOGGING_LEVEL = @LOGGING_LEVEL@
+LOOKS = @LOOKS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATIO_CFLAGS = @MATIO_CFLAGS@
+MATIO_ENABLE = @MATIO_ENABLE@
+MATIO_LIBS = @MATIO_LIBS@
+MKDIR_P = @MKDIR_P@
+MPI_ENABLE = @MPI_ENABLE@
+MSGCAT = @MSGCAT@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OCAMLC = @OCAMLC@
+OCAMLDEP = @OCAMLDEP@
+OCAMLLEX = @OCAMLLEX@
+OCAMLOPT = @OCAMLOPT@
+OCAMLYACC = @OCAMLYACC@
+OPENMPI_CC = @OPENMPI_CC@
+OPENMPI_CFLAGS = @OPENMPI_CFLAGS@
+OPENMPI_CXX = @OPENMPI_CXX@
+OPENMPI_CXXFLAGS = @OPENMPI_CXXFLAGS@
+OPENMPI_LIBS = @OPENMPI_LIBS@
+OPENMP_CFLAGS = @OPENMP_CFLAGS@
+OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@
+OPENMP_ENABLE = @OPENMP_ENABLE@
+OPENMP_LIBS = @OPENMP_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCRE_CFLAGS = @PCRE_CFLAGS@
+PCRE_CONFIG = @PCRE_CONFIG@
+PCRE_LIBS = @PCRE_LIBS@
+PCRE_VERSION = @PCRE_VERSION@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELOCATABLE = @RELOCATABLE@
+RT_LIB = @RT_LIB@
+SAXON = @SAXON@
+SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@
+SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@
+SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@
+SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@
+SCIRENDERER = @SCIRENDERER@
+SCIRENDERER_CP = @SCIRENDERER_CP@
+SCI_CFLAGS = @SCI_CFLAGS@
+SCI_CXXFLAGS = @SCI_CXXFLAGS@
+SCI_FFLAGS = @SCI_FFLAGS@
+SCI_LDFLAGS = @SCI_LDFLAGS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SET_RELOCATABLE = @SET_RELOCATABLE@
+SHELL = @SHELL@
+SKINLF = @SKINLF@
+SPLINT = @SPLINT@
+STRIP = @STRIP@
+SWIG_BIN = @SWIG_BIN@
+SWIG_JAVA = @SWIG_JAVA@
+SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
+SWIG_SCILAB = @SWIG_SCILAB@
+TCLTK_LIBS = @TCLTK_LIBS@
+TCL_INC_PATH = @TCL_INC_PATH@
+TK_INC_PATH = @TK_INC_PATH@
+UMFPACK_CFLAGS = @UMFPACK_CFLAGS@
+UMFPACK_ENABLE = @UMFPACK_ENABLE@
+UMFPACK_LIB = @UMFPACK_LIB@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WITH_OCAML = @WITH_OCAML@
+WITH_TKSCI = @WITH_TKSCI@
+XCOS_ENABLE = @XCOS_ENABLE@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMKMF = @XMKMF@
+XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@
+XML_APIS_EXT = @XML_APIS_EXT@
+XML_CONFIG = @XML_CONFIG@
+XML_FLAGS = @XML_FLAGS@
+XML_LIBS = @XML_LIBS@
+XML_VERSION = @XML_VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cxx_present = @cxx_present@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SPREADSHEET_C_SOURCES = \
+src/c/xls.c \
+src/c/checkCsvWriteFormat.c \
+src/c/csvDefault.c \
+src/c/csvRead.c \
+src/c/csvWrite.c \
+src/c/getRange.c \
+src/c/splitLine.c \
+src/c/utftolatin.c
+
+RIPOLE_SOURCES = \
+src/c/ripole/olestream-unwrap.c \
+src/c/ripole/pldstr.c \
+src/c/ripole/ole.c \
+src/c/ripole/bytedecoders.c \
+src/c/ripole/logger.c \
+src/c/ripole/ripole.c \
+src/c/ripole/bt-int.c
+
+GATEWAY_C_SOURCES = \
+sci_gateway/c/gw_spreadsheet.c \
+sci_gateway/c/sci_xls_read.c \
+sci_gateway/c/sci_xls_open.c \
+sci_gateway/c/gw_csv_helpers.c \
+sci_gateway/c/sci_csvDefault.c \
+sci_gateway/c/sci_csvRead.c \
+sci_gateway/c/sci_csvStringToDouble.c \
+sci_gateway/c/sci_csvTextScan.c \
+sci_gateway/c/sci_csvWrite.c
+
+libscispreadsheet_la_CPPFLAGS = \
+-I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(srcdir)/src/c/ripole \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/io/includes/ \
+-I$(top_srcdir)/modules/string/src/c/ \
+-I$(top_srcdir)/modules/string/includes/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/fileio/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscispreadsheet.la
+noinst_LTLIBRARIES = libscispreadsheet-algo.la
+libscispreadsheet_algo_la_SOURCES = $(SPREADSHEET_C_SOURCES) $(RIPOLE_SOURCES)
+libscispreadsheet_la_SOURCES = $(GATEWAY_C_SOURCES)
+libscispreadsheet_algo_la_CPPFLAGS = $(libscispreadsheet_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC = $(SPREADSHEET_C_SOURCES) $(GATEWAY_C_SOURCES) $(RIPOLE_SOURCES)
+INCLUDE_FLAGS = $(libscispreadsheet_la_CPPFLAGS)
+libscispreadsheet_la_LIBADD = libscispreadsheet-algo.la
+
+#### Target ######
+modulename = spreadsheet
+
+#### spreadsheet : Conf files ####
+libscispreadsheet_la_rootdir = $(mydatadir)
+libscispreadsheet_la_root_DATA = license.txt
+
+####�spreadsheet : init scripts ####
+libscispreadsheet_la_etcdir = $(mydatadir)/etc
+libscispreadsheet_la_etc_DATA = etc/spreadsheet.quit etc/spreadsheet.start
+
+####�spreadsheet : gateway declaration ####
+libscispreadsheet_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscispreadsheet_la_sci_gateway_DATA = sci_gateway/spreadsheet_gateway.xml
+
+# Where all the Scilab stuff is installed (macros, help, ...)
+mydatadir = $(pkgdatadir)/modules/$(modulename)
+
+# Set AM_* SCI detected settings
+AM_CPPFLAGS = $(SCI_CPPFLAGS)
+AM_CFLAGS = $(SCI_CFLAGS)
+AM_CXXFLAGS = $(SCI_CXXFLAGS)
+# append includes to AM_FFLAGS to manage fortran includes
+AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/
+
+# Tag shared libraries with the Scilab version
+AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION)
+
+# splint options
+SPLINT_OPTIONS = -weak -booltype BOOL
+
+########################### JAVA ######################################
+#### We are delegating java compilation to ant... Thanks to that
+#### the procedure will be the same with Microsoft Windows (C)
+#### and Linux/Unix
+#######################################################################
+TARGETS_ALL = $(am__append_1)
+
+################ MACROS ######################
+# Rule to build a macro
+# NOT USED AT THE MOMENT
+SUFFIXES = .sci
+
+########### INSTALL DOCUMENTATION ###################
+
+# Install documentation files into the right target
+# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
+# automake needs the html files to be present which is not the case when
+# we are building Scilab
+
+# Where it should be installed
+pkgdocdir = $(mydatadir)
+
+# What is the mask of the help source
+DOCMASKXML = *.xml
+
+# What is the mask of the MathML sources
+DOCMASKMML = *.mml
+
+########### INSTALL DATA ###################
+# Install macros, help & demos
+# Where it should be installed
+pkgmacrosdir = $(mydatadir)
+# Which directory we process
+MACRODIRS = macros/
+# Mask of the Scilab sources macros
+MACROMASK = *.sci
+# Mask of the Scilab executable sources macros
+MACROBUILDMASK = *.sce
+# Mask of the Scilab compiled macros
+MACROBINMASK = *.bin
+# List of the standard directory for tests
+TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
+# Where the demos should be installed
+pkgdemosdir = $(mydatadir)
+# List of the standard directory for demos
+DEMOS_DIR = demos
+# List of the standard directory for examples
+EXAMPLES_DIR = examples
+# Where to export JAVA archives (.jar)
+JARDIR = jar/
+# JAR files mask
+JARMASK = *.jar
+# Chapter file
+HELP_CHAPTERDIR = help/
+HELP_CHAPTERFILE = addchapter.sce
+HELP_CHAPTERLANG = en_US fr_FR pt_BR
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sci .bin .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/spreadsheet/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign modules/spreadsheet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/Makefile.incl.am:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+src/c/$(am__dirstamp):
+ @$(MKDIR_P) src/c
+ @: > src/c/$(am__dirstamp)
+src/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/$(DEPDIR)
+ @: > src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-xls.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo: \
+ src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvDefault.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvRead.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-csvWrite.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-getRange.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-splitLine.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscispreadsheet_algo_la-utftolatin.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/$(am__dirstamp):
+ @$(MKDIR_P) src/c/ripole
+ @: > src/c/ripole/$(am__dirstamp)
+src/c/ripole/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/ripole/$(DEPDIR)
+ @: > src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-pldstr.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-ole.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-logger.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-ripole.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+src/c/ripole/libscispreadsheet_algo_la-bt-int.lo: \
+ src/c/ripole/$(am__dirstamp) \
+ src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+
+libscispreadsheet-algo.la: $(libscispreadsheet_algo_la_OBJECTS) $(libscispreadsheet_algo_la_DEPENDENCIES) $(EXTRA_libscispreadsheet_algo_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libscispreadsheet_algo_la_OBJECTS) $(libscispreadsheet_algo_la_LIBADD) $(LIBS)
+sci_gateway/c/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c
+ @: > sci_gateway/c/$(am__dirstamp)
+sci_gateway/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c/$(DEPDIR)
+ @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+
+libscispreadsheet.la: $(libscispreadsheet_la_OBJECTS) $(libscispreadsheet_la_DEPENDENCIES) $(EXTRA_libscispreadsheet_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(pkglibdir) $(libscispreadsheet_la_OBJECTS) $(libscispreadsheet_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f sci_gateway/c/*.$(OBJEXT)
+ -rm -f sci_gateway/c/*.lo
+ -rm -f src/c/*.$(OBJEXT)
+ -rm -f src/c/*.lo
+ -rm -f src/c/ripole/*.$(OBJEXT)
+ -rm -f src/c/ripole/*.lo
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+src/c/libscispreadsheet_algo_la-xls.lo: src/c/xls.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-xls.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Tpo -c -o src/c/libscispreadsheet_algo_la-xls.lo `test -f 'src/c/xls.c' || echo '$(srcdir)/'`src/c/xls.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-xls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/xls.c' object='src/c/libscispreadsheet_algo_la-xls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-xls.lo `test -f 'src/c/xls.c' || echo '$(srcdir)/'`src/c/xls.c
+
+src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo: src/c/checkCsvWriteFormat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Tpo -c -o src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo `test -f 'src/c/checkCsvWriteFormat.c' || echo '$(srcdir)/'`src/c/checkCsvWriteFormat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/checkCsvWriteFormat.c' object='src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo `test -f 'src/c/checkCsvWriteFormat.c' || echo '$(srcdir)/'`src/c/checkCsvWriteFormat.c
+
+src/c/libscispreadsheet_algo_la-csvDefault.lo: src/c/csvDefault.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvDefault.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Tpo -c -o src/c/libscispreadsheet_algo_la-csvDefault.lo `test -f 'src/c/csvDefault.c' || echo '$(srcdir)/'`src/c/csvDefault.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvDefault.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/csvDefault.c' object='src/c/libscispreadsheet_algo_la-csvDefault.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvDefault.lo `test -f 'src/c/csvDefault.c' || echo '$(srcdir)/'`src/c/csvDefault.c
+
+src/c/libscispreadsheet_algo_la-csvRead.lo: src/c/csvRead.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvRead.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Tpo -c -o src/c/libscispreadsheet_algo_la-csvRead.lo `test -f 'src/c/csvRead.c' || echo '$(srcdir)/'`src/c/csvRead.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvRead.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/csvRead.c' object='src/c/libscispreadsheet_algo_la-csvRead.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvRead.lo `test -f 'src/c/csvRead.c' || echo '$(srcdir)/'`src/c/csvRead.c
+
+src/c/libscispreadsheet_algo_la-csvWrite.lo: src/c/csvWrite.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-csvWrite.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Tpo -c -o src/c/libscispreadsheet_algo_la-csvWrite.lo `test -f 'src/c/csvWrite.c' || echo '$(srcdir)/'`src/c/csvWrite.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-csvWrite.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/csvWrite.c' object='src/c/libscispreadsheet_algo_la-csvWrite.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-csvWrite.lo `test -f 'src/c/csvWrite.c' || echo '$(srcdir)/'`src/c/csvWrite.c
+
+src/c/libscispreadsheet_algo_la-getRange.lo: src/c/getRange.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-getRange.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Tpo -c -o src/c/libscispreadsheet_algo_la-getRange.lo `test -f 'src/c/getRange.c' || echo '$(srcdir)/'`src/c/getRange.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-getRange.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/getRange.c' object='src/c/libscispreadsheet_algo_la-getRange.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-getRange.lo `test -f 'src/c/getRange.c' || echo '$(srcdir)/'`src/c/getRange.c
+
+src/c/libscispreadsheet_algo_la-splitLine.lo: src/c/splitLine.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-splitLine.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Tpo -c -o src/c/libscispreadsheet_algo_la-splitLine.lo `test -f 'src/c/splitLine.c' || echo '$(srcdir)/'`src/c/splitLine.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-splitLine.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/splitLine.c' object='src/c/libscispreadsheet_algo_la-splitLine.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-splitLine.lo `test -f 'src/c/splitLine.c' || echo '$(srcdir)/'`src/c/splitLine.c
+
+src/c/libscispreadsheet_algo_la-utftolatin.lo: src/c/utftolatin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscispreadsheet_algo_la-utftolatin.lo -MD -MP -MF src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Tpo -c -o src/c/libscispreadsheet_algo_la-utftolatin.lo `test -f 'src/c/utftolatin.c' || echo '$(srcdir)/'`src/c/utftolatin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Tpo src/c/$(DEPDIR)/libscispreadsheet_algo_la-utftolatin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/utftolatin.c' object='src/c/libscispreadsheet_algo_la-utftolatin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscispreadsheet_algo_la-utftolatin.lo `test -f 'src/c/utftolatin.c' || echo '$(srcdir)/'`src/c/utftolatin.c
+
+src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo: src/c/ripole/olestream-unwrap.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo `test -f 'src/c/ripole/olestream-unwrap.c' || echo '$(srcdir)/'`src/c/ripole/olestream-unwrap.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-olestream-unwrap.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/olestream-unwrap.c' object='src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo `test -f 'src/c/ripole/olestream-unwrap.c' || echo '$(srcdir)/'`src/c/ripole/olestream-unwrap.c
+
+src/c/ripole/libscispreadsheet_algo_la-pldstr.lo: src/c/ripole/pldstr.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-pldstr.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-pldstr.lo `test -f 'src/c/ripole/pldstr.c' || echo '$(srcdir)/'`src/c/ripole/pldstr.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-pldstr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/pldstr.c' object='src/c/ripole/libscispreadsheet_algo_la-pldstr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-pldstr.lo `test -f 'src/c/ripole/pldstr.c' || echo '$(srcdir)/'`src/c/ripole/pldstr.c
+
+src/c/ripole/libscispreadsheet_algo_la-ole.lo: src/c/ripole/ole.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-ole.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-ole.lo `test -f 'src/c/ripole/ole.c' || echo '$(srcdir)/'`src/c/ripole/ole.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ole.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/ole.c' object='src/c/ripole/libscispreadsheet_algo_la-ole.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-ole.lo `test -f 'src/c/ripole/ole.c' || echo '$(srcdir)/'`src/c/ripole/ole.c
+
+src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo: src/c/ripole/bytedecoders.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo `test -f 'src/c/ripole/bytedecoders.c' || echo '$(srcdir)/'`src/c/ripole/bytedecoders.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bytedecoders.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/bytedecoders.c' object='src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo `test -f 'src/c/ripole/bytedecoders.c' || echo '$(srcdir)/'`src/c/ripole/bytedecoders.c
+
+src/c/ripole/libscispreadsheet_algo_la-logger.lo: src/c/ripole/logger.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-logger.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-logger.lo `test -f 'src/c/ripole/logger.c' || echo '$(srcdir)/'`src/c/ripole/logger.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-logger.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/logger.c' object='src/c/ripole/libscispreadsheet_algo_la-logger.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-logger.lo `test -f 'src/c/ripole/logger.c' || echo '$(srcdir)/'`src/c/ripole/logger.c
+
+src/c/ripole/libscispreadsheet_algo_la-ripole.lo: src/c/ripole/ripole.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-ripole.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-ripole.lo `test -f 'src/c/ripole/ripole.c' || echo '$(srcdir)/'`src/c/ripole/ripole.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-ripole.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/ripole.c' object='src/c/ripole/libscispreadsheet_algo_la-ripole.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-ripole.lo `test -f 'src/c/ripole/ripole.c' || echo '$(srcdir)/'`src/c/ripole/ripole.c
+
+src/c/ripole/libscispreadsheet_algo_la-bt-int.lo: src/c/ripole/bt-int.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/ripole/libscispreadsheet_algo_la-bt-int.lo -MD -MP -MF src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Tpo -c -o src/c/ripole/libscispreadsheet_algo_la-bt-int.lo `test -f 'src/c/ripole/bt-int.c' || echo '$(srcdir)/'`src/c/ripole/bt-int.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Tpo src/c/ripole/$(DEPDIR)/libscispreadsheet_algo_la-bt-int.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/ripole/bt-int.c' object='src/c/ripole/libscispreadsheet_algo_la-bt-int.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/ripole/libscispreadsheet_algo_la-bt-int.lo `test -f 'src/c/ripole/bt-int.c' || echo '$(srcdir)/'`src/c/ripole/bt-int.c
+
+sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo: sci_gateway/c/gw_spreadsheet.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Tpo -c -o sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo `test -f 'sci_gateway/c/gw_spreadsheet.c' || echo '$(srcdir)/'`sci_gateway/c/gw_spreadsheet.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_spreadsheet.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_spreadsheet.c' object='sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo `test -f 'sci_gateway/c/gw_spreadsheet.c' || echo '$(srcdir)/'`sci_gateway/c/gw_spreadsheet.c
+
+sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo: sci_gateway/c/sci_xls_read.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo `test -f 'sci_gateway/c/sci_xls_read.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_read.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_read.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_xls_read.c' object='sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo `test -f 'sci_gateway/c/sci_xls_read.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_read.c
+
+sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo: sci_gateway/c/sci_xls_open.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo `test -f 'sci_gateway/c/sci_xls_open.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_open.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_xls_open.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_xls_open.c' object='sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo `test -f 'sci_gateway/c/sci_xls_open.c' || echo '$(srcdir)/'`sci_gateway/c/sci_xls_open.c
+
+sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo: sci_gateway/c/gw_csv_helpers.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Tpo -c -o sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo `test -f 'sci_gateway/c/gw_csv_helpers.c' || echo '$(srcdir)/'`sci_gateway/c/gw_csv_helpers.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-gw_csv_helpers.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_csv_helpers.c' object='sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo `test -f 'sci_gateway/c/gw_csv_helpers.c' || echo '$(srcdir)/'`sci_gateway/c/gw_csv_helpers.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo: sci_gateway/c/sci_csvDefault.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo `test -f 'sci_gateway/c/sci_csvDefault.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvDefault.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvDefault.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_csvDefault.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo `test -f 'sci_gateway/c/sci_csvDefault.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvDefault.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo: sci_gateway/c/sci_csvRead.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo `test -f 'sci_gateway/c/sci_csvRead.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvRead.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvRead.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_csvRead.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo `test -f 'sci_gateway/c/sci_csvRead.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvRead.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo: sci_gateway/c/sci_csvStringToDouble.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo `test -f 'sci_gateway/c/sci_csvStringToDouble.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvStringToDouble.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvStringToDouble.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_csvStringToDouble.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo `test -f 'sci_gateway/c/sci_csvStringToDouble.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvStringToDouble.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo: sci_gateway/c/sci_csvTextScan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo `test -f 'sci_gateway/c/sci_csvTextScan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvTextScan.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvTextScan.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_csvTextScan.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo `test -f 'sci_gateway/c/sci_csvTextScan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvTextScan.c
+
+sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo: sci_gateway/c/sci_csvWrite.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Tpo -c -o sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo `test -f 'sci_gateway/c/sci_csvWrite.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvWrite.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Tpo sci_gateway/c/$(DEPDIR)/libscispreadsheet_la-sci_csvWrite.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_csvWrite.c' object='sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscispreadsheet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo `test -f 'sci_gateway/c/sci_csvWrite.c' || echo '$(srcdir)/'`sci_gateway/c/sci_csvWrite.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs
+ -rm -rf src/c/.libs src/c/_libs
+ -rm -rf src/c/ripole/.libs src/c/ripole/_libs
+install-libscispreadsheet_la_etcDATA: $(libscispreadsheet_la_etc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_etc_DATA)'; test -n "$(libscispreadsheet_la_etcdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_etcdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_etcdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_etcdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_etcdir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_etcDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_etc_DATA)'; test -n "$(libscispreadsheet_la_etcdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_etcdir)'; $(am__uninstall_files_from_dir)
+install-libscispreadsheet_la_rootDATA: $(libscispreadsheet_la_root_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_root_DATA)'; test -n "$(libscispreadsheet_la_rootdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_rootdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_rootdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_rootdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_rootdir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_rootDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_root_DATA)'; test -n "$(libscispreadsheet_la_rootdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_rootdir)'; $(am__uninstall_files_from_dir)
+install-libscispreadsheet_la_sci_gatewayDATA: $(libscispreadsheet_la_sci_gateway_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscispreadsheet_la_sci_gateway_DATA)'; test -n "$(libscispreadsheet_la_sci_gatewaydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)" || exit $$?; \
+ done
+
+uninstall-libscispreadsheet_la_sci_gatewayDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscispreadsheet_la_sci_gateway_DATA)'; test -n "$(libscispreadsheet_la_sci_gatewaydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) all-local
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscispreadsheet_la_etcdir)" "$(DESTDIR)$(libscispreadsheet_la_rootdir)" "$(DESTDIR)$(libscispreadsheet_la_sci_gatewaydir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/c/$(am__dirstamp)
+ -rm -f src/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/$(am__dirstamp)
+ -rm -f src/c/ripole/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/ripole/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) src/c/ripole/$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-local distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local \
+ install-libscispreadsheet_la_etcDATA \
+ install-libscispreadsheet_la_rootDATA \
+ install-libscispreadsheet_la_sci_gatewayDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am: install-html-local
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) src/c/ripole/$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libscispreadsheet_la_etcDATA \
+ uninstall-libscispreadsheet_la_rootDATA \
+ uninstall-libscispreadsheet_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \
+ check-local clean clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-html-local install-info \
+ install-info-am install-libscispreadsheet_la_etcDATA \
+ install-libscispreadsheet_la_rootDATA \
+ install-libscispreadsheet_la_sci_gatewayDATA install-man \
+ install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am \
+ uninstall-libscispreadsheet_la_etcDATA \
+ uninstall-libscispreadsheet_la_rootDATA \
+ uninstall-libscispreadsheet_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+
+# This target enables tests for Scilab
+check-local: $(top_builddir)/scilab-bin test
+ if test -d $(mydatadir)/tests; then \
+ @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
+ fi
+check-code:
+ if test -f build.xml; then \
+ $(ANT) checkstyle; \
+ fi
+ if test -x "$(SPLINT)"; then \
+ $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
+ fi
+@NEED_JAVA_TRUE@java:
+# Some configurations needs to export JAVA_HOME in the current env
+@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \
+@NEED_JAVA_TRUE@ $(ANT); \
+@NEED_JAVA_TRUE@ fi
+
+@NEED_JAVA_TRUE@clean-java:
+# Some configurations needs to export JAVA_HOME in the current env
+@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \
+@NEED_JAVA_TRUE@ $(ANT) clean; \
+@NEED_JAVA_TRUE@ fi;
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@SWIG_TRUE@swig: $(SWIG_WRAPPERS)
+@SWIG_TRUE@ @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
+@SWIG_TRUE@ SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
+@SWIG_TRUE@ if test -n "$(SWIG_WRAPPERS)"; then \
+@SWIG_TRUE@ for file in $(SWIG_WRAPPERS) ; do \
+@SWIG_TRUE@ echo "Swig process of $$file (Java) ..."; \
+@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \
+@SWIG_TRUE@ done; \
+@SWIG_TRUE@ fi
+
+@SWIG_TRUE@swig-scilab: $(SWIG_SCILAB_WRAPPERS)
+@SWIG_TRUE@ @SWIG_OUTDIR=src/swig/; \
+@SWIG_TRUE@ if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \
+@SWIG_TRUE@ for file in $(SWIG_SCILAB_WRAPPERS) ; do \
+@SWIG_TRUE@ echo "Swig process of $$file (Scilab) ..."; \
+@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \
+@SWIG_TRUE@ done; \
+@SWIG_TRUE@ fi
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@GIWS_TRUE@giws: $(GIWS_WRAPPERS)
+@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/; \
+@GIWS_TRUE@ MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \
+@GIWS_TRUE@ if test -n "$(GIWS_WRAPPERS)"; then \
+@GIWS_TRUE@ for file in $(GIWS_WRAPPERS) ; do \
+@GIWS_TRUE@ echo "GIWS process of $$file ..."; \
+@GIWS_TRUE@ if test -z "$(GIWS_OPTIONS)"; then \
+@GIWS_TRUE@ $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+@GIWS_TRUE@ else \
+@GIWS_TRUE@ echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \
+@GIWS_TRUE@ $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+@GIWS_TRUE@ fi \
+@GIWS_TRUE@ done; \
+@GIWS_TRUE@ fi
+
+@GIWS_TRUE@giws-exception:
+@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/;\
+@GIWS_TRUE@ echo "GIWS: Generation of exception class ..."; \
+@GIWS_TRUE@ $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR
+
+macros:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been built"; \
+ else \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
+ fi)
+
+# Removes the macros
+clean-macros:
+# Removes macros (*.bin generated from .sci)
+ @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
+ rm -f $(builddir)/$$dir/$(MACROBINMASK); \
+ done
+
+test:
+# More tests could be added here
+ @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) test; \
+ fi
+
+all-local: $(TARGETS_ALL)
+
+.sci.bin:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been build"; \
+ else \
+ echo "Creating $@"; \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
+ fi )
+
+install-html-local:
+
+install-data-local-local:
+# Mainly for javasci
+ @if test -d $(srcdir)/javadoc; then \
+ cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
+ fi
+# If the user wants the help sources to be installed
+@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of XML sources of help files --------"; \
+@INSTALL_HELP_XML_TRUE@ for lang in $(ALL_LINGUAS); do \
+@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/$$lang; then \
+@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
+@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
+@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
+@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
+@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
+@INSTALL_HELP_XML_TRUE@ done ; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ done; \
+@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of MathML sources --------"; \
+@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/mml/; then \
+@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
+@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
+@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
+@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
+@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
+@INSTALL_HELP_XML_TRUE@ done ; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ fi
+install-data-local:
+# Install the tests
+ @echo "-------- Install tests (if any) --------"; \
+ for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the help chapter
+ @echo "-------- Install the help chapter (if any) --------"; \
+ for lang in $(HELP_CHAPTERLANG); do \
+ HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
+ if test -f $$HELPFILE; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ fi; \
+ done
+# Install the demos & examples
+ @echo "-------- Install demos & examples (if any) --------"; \
+ for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the macros
+ @echo "-------- Install macros (if any) --------"; \
+ for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ if test -d $(srcdir)/$$dir/; then \
+ FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
+ if test -n "$(MACROSSPECIALEXT)"; then \
+ specialExtDir=""; \
+ for specialExt in $(MACROSSPECIALEXT); do \
+ specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
+ done; \
+ FILELIST="$$FILELIST $$specialExtDir"; \
+ fi; \
+ for file in `ls -1 $$FILELIST 2>/dev/null`; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
+ done; \
+ fi; \
+ done
+# Install java files (.jar)
+ @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
+ echo "-------- Install jar files --------"; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
+ for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
+ done ; \
+ fi
+
+########### CLEAN ###################
+# Clean help (generated automatically by Scilab)
+# It used to clean the macro (clean-macros) but this was causing
+# make clean && make to fail Scilab startup
+@NEED_JAVA_TRUE@clean-local: clean-java
+@NEED_JAVA_FALSE@clean-local:
+
+distclean-local:
+ rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
+
+.PHONY: macros java swig giws
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/spreadsheet/TODO b/modules/spreadsheet/TODO
new file mode 100755
index 000000000..8f7fc6321
--- /dev/null
+++ b/modules/spreadsheet/TODO
@@ -0,0 +1 @@
+* Get ride of helper functions sci_gateway/cpp/gw_csv_helpers.cpp
diff --git a/modules/spreadsheet/core_Import.def b/modules/spreadsheet/core_Import.def
new file mode 100755
index 000000000..922aefd11
--- /dev/null
+++ b/modules/spreadsheet/core_Import.def
@@ -0,0 +1,20 @@
+LIBRARY core.dll
+
+
+EXPORTS
+ putlhsvar_
+ createvar_
+ stack_
+ com_
+ getrhsvar_
+ checklhs_
+ checkrhs_
+ intersci_
+ createvarfromptr_
+ callFunctionFromGateway
+ returnanan_
+ getTMPDIR
+ vartype_
+ freeArrayOfString
+ ;
+
diff --git a/modules/spreadsheet/demos/spreadsheet.dem.gateway.sce b/modules/spreadsheet/demos/spreadsheet.dem.gateway.sce
new file mode 100755
index 000000000..2d727fc10
--- /dev/null
+++ b/modules/spreadsheet/demos/spreadsheet.dem.gateway.sce
@@ -0,0 +1,18 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function subdemolist = demo_gateway()
+
+ demopath = get_absolute_file_path("spreadsheet.dem.gateway.sce");
+ add_demo(_("Spreadsheet"), demopath + "spreadsheet.dem.gateway.sce");
+
+ subdemolist = [_("Read a xls file") ,"spreadsheet.dem.sce"];
+
+ subdemolist(:,2) = demopath + subdemolist(:,2);
+
+endfunction
+
+subdemolist = demo_gateway();
+clear demo_gateway; \ No newline at end of file
diff --git a/modules/spreadsheet/demos/spreadsheet.dem.sce b/modules/spreadsheet/demos/spreadsheet.dem.sce
new file mode 100755
index 000000000..1bfa54def
--- /dev/null
+++ b/modules/spreadsheet/demos/spreadsheet.dem.sce
@@ -0,0 +1,36 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA - Allan CORNET
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_spreadsheet()
+
+ l = lines();
+ lines(0);
+
+ m = mode();
+ mode(1);
+
+ mprintf("\n// Decode ole file, extract and open Excel stream\n");
+ mprintf("[fd, SST, Sheetnames, Sheetpos] = xls_open(''SCI/modules/spreadsheet/demos/xls/Test1.xls'')\n");
+
+ [fd, SST, Sheetnames, Sheetpos] = xls_open("SCI/modules/spreadsheet/demos/xls/Test1.xls")
+
+ mprintf("\n// Read first data sheet\n");
+ mprintf("[Value, TextInd] = xls_read(fd, Sheetpos(1))\n");
+
+ [Value, TextInd] = xls_read(fd, Sheetpos(1))
+
+ //close the spreadsheet stream
+ mclose(fd);
+
+ mprintf("\n");
+
+ mode(m);
+ lines(l(2), l(1));
+
+endfunction
+
+demo_spreadsheet()
+clear demo_spreadsheet;
diff --git a/modules/spreadsheet/demos/xls/README b/modules/spreadsheet/demos/xls/README
new file mode 100755
index 000000000..e292a9b20
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/README
@@ -0,0 +1,18 @@
+The files t1.xls Test1.xls and Testbig.xls have been built by Microsoft Excel 2000
+
+The files o1.xls Testo1.xls and Testobig.xls have been built by OpenOffice 1.0.2
+Currently the OpenOffice can be read but the results are not ok. It seems that
+OpenOffice does not set the formula value
+
+- t1.xls and o1.xls
+ contain 3 Excel sheets the first 2 sheets contain 2x2 arrays the last one is empty
+
+- Test1.xls and Testo1.xls
+ contain 1 Excel sheet (20x4). First 2 rows contain text,
+ for the other rows, Columns 2:4 data are defined by formulas.
+
+- Testbig.xls and Testobig.xls
+ contain 1 Excel sheet (1000x4). First 2 rows contain text,
+ for the other rows, Columns 2:4 data are defined by formulas.
+
+
diff --git a/modules/spreadsheet/demos/xls/Test1.xls b/modules/spreadsheet/demos/xls/Test1.xls
new file mode 100755
index 000000000..3296c3c2c
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/Test1.xls
Binary files differ
diff --git a/modules/spreadsheet/demos/xls/Testbig.xls b/modules/spreadsheet/demos/xls/Testbig.xls
new file mode 100755
index 000000000..aa2a7153f
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/Testbig.xls
Binary files differ
diff --git a/modules/spreadsheet/demos/xls/Testo1.xls b/modules/spreadsheet/demos/xls/Testo1.xls
new file mode 100755
index 000000000..1ee6c3952
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/Testo1.xls
Binary files differ
diff --git a/modules/spreadsheet/demos/xls/Testobig.xls b/modules/spreadsheet/demos/xls/Testobig.xls
new file mode 100755
index 000000000..478f106f8
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/Testobig.xls
Binary files differ
diff --git a/modules/spreadsheet/demos/xls/o1.xls b/modules/spreadsheet/demos/xls/o1.xls
new file mode 100755
index 000000000..b91ea7ff7
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/o1.xls
Binary files differ
diff --git a/modules/spreadsheet/demos/xls/t1.xls b/modules/spreadsheet/demos/xls/t1.xls
new file mode 100755
index 000000000..012a8ebec
--- /dev/null
+++ b/modules/spreadsheet/demos/xls/t1.xls
Binary files differ
diff --git a/modules/spreadsheet/etc/spreadsheet.quit b/modules/spreadsheet/etc/spreadsheet.quit
new file mode 100755
index 000000000..b64bbfc8d
--- /dev/null
+++ b/modules/spreadsheet/etc/spreadsheet.quit
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007-2008 - INRIA
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+// =============================================================================
diff --git a/modules/spreadsheet/etc/spreadsheet.start b/modules/spreadsheet/etc/spreadsheet.start
new file mode 100755
index 000000000..08910d31f
--- /dev/null
+++ b/modules/spreadsheet/etc/spreadsheet.start
@@ -0,0 +1,12 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007-2008 - INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//Load functions libraries
+// =============================================================================
+load('SCI/modules/spreadsheet/macros/lib');
diff --git a/modules/spreadsheet/help/en_US/addchapter.sce b/modules/spreadsheet/help/en_US/addchapter.sce
new file mode 100755
index 000000000..5595d00ad
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Spreadsheet",SCI+"/modules/spreadsheet/help/en_US",%T);
+
diff --git a/modules/spreadsheet/help/en_US/csvDefault.xml b/modules/spreadsheet/help/en_US/csvDefault.xml
new file mode 100755
index 000000000..3898b6e54
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/csvDefault.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvDefault" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvDefault</refname>
+
+ <refpurpose>Get or set defaults behavior for csv files.</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+
+ <synopsis>allvalues = csvDefault() </synopsis>
+
+ <synopsis>value = csvDefault(field) </synopsis>
+
+ <synopsis>bRes = csvDefault(field, value) </synopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Parameters</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>allvalues</term>
+
+ <listitem>
+ <para>a 6-by-2 matrix of strings, the values of all the fields. The
+ first column contains the available fields, while the second column
+ contains the current values.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>field</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the name of the field to get or
+ set. The available values of <literal>field</literal> are
+ "separator", "decimal", "conversion", "precision", "regexp", "eol",
+ "encoding", "blank".
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>value</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the value of the field to get or
+ set.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>bRes</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of booleans, bRes is true if the value was
+ correctly set, bRes is wrong is the value was not correct.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>This function allows to quiery or configure the options of the csv
+ files. These options are used by the read and write function when the user
+ does not specify them in the calling sequence.
+ </para>
+
+ <para>
+ The <literal>allvalues = csvDefault()</literal> calling sequence
+ returns the value of all the fields.
+ </para>
+
+ <para>
+ The <literal>value = csvDefault(field)</literal> calling sequence
+ returns the value corresponding to the given field.
+ </para>
+
+ <para>
+ The <literal>bRes = csvDefault(field, value)</literal> calling
+ sequence allows to set the value of the given field. <itemizedlist>
+ <listitem>
+ <para>If the function cannot set the field to the given value, then
+ <literal>bRes</literal> is false. In this case, the value of the
+ field is unchanged.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>If the function is able to change the field to the given
+ value, then <literal>bRes</literal> is true.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>The available fields are the following. <itemizedlist>
+ <listitem>
+ <para>field = "separator": the separator of the columns of the csv
+ files. Default separator = ",".
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>field = "decimal": the decimal point used in the csv files.
+ The available values are "." or ",". Default decimal = ".".
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>field = "conversion": the type of the output of the
+ <literal>csvRead</literal>function. Possible values are "string" or
+ "double". Default conversion = "double". If conversion = "string",
+ then the <literal>csvRead</literal> function returns a matrix of
+ strings. If conversion = "double", then the
+ <literal>csvRead</literal> function returns a matrix of
+ doubles.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>field = "precision": the C format used to create the strings
+ from the doubles in the <literal>csvWrite</literal> function. The
+ default value is <literal>precision="%.17lg"</literal>. This format
+ allows to perform write-read error-free cycles. This means that we
+ can save a double into a .csv, then read the double and get the
+ exact same value. The supported format is: %type or
+ %[width].[precision]type. <itemizedlist>
+ <listitem>
+ <para>type: lf, lg, d, i, e, f, g</para>
+ </listitem>
+
+ <listitem>
+ <para>width: Optional number that specifies the minimum number
+ of characters output.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>precision: Optional number that specifies the maximum
+ number of characters printed for all or part of the output
+ field, or the minimum number of digits printed for integer
+ values.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>field = "regexp": regular expression used to extract comments
+ of the <literal>csvRead</literal>function.
+ </para>
+
+ <para>by default, this value is '' (no regexp).</para>
+ </listitem>
+
+ <listitem>
+ <para>field = "eol": end of line used to write lines of the
+ <literal>csvWrite</literal>function.
+ </para>
+
+ <para>Possible values are "linux", "windows", "macos9".</para>
+
+ <para>by default, this value is platform-dependant.</para>
+ </listitem>
+
+ <listitem>
+ <para>field = "encoding":</para>
+
+ <para>Possible values are "utf-8", "iso-latin".</para>
+
+ <para>by default, this value is "utf-8".</para>
+ </listitem>
+
+ <listitem>
+ <para>field = "blank": remove all blank lines before to parse
+ text
+ </para>
+
+ <para>Possible values are "on", "off".</para>
+
+ <para>by default, this value is "on".</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+
+ <programlisting role="example">// See all the available fields
+ allvalues = csvDefault()
+ // Get the value of the "precision" field
+ value = csvDefault("precision")
+ // Set the value of the "precision" field
+ bRes = csvDefault("precision","%.17e") // Expected = %t
+ // Set the value of the "precision" field to
+ // an impossible value
+ bRes = csvDefault("precision","Ouch!") // Expected = %f
+ </programlisting>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+
+ <member>
+ <link linkend="csvWrite">csvWrite</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function introduced. Based on the 'csv_readwrite' module.</revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>'blank' is enabled by default.</revremark>
+ </revision>
+
+ </revhistory>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/en_US/csvRead.xml b/modules/spreadsheet/help/en_US/csvRead.xml
new file mode 100755
index 000000000..b5bff83c9
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/csvRead.xml
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvRead" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvRead</refname>
+ <refpurpose>Read comma-separated value file</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ M = csvRead(filename)
+ M = csvRead(filename, separator)
+ M = csvRead(filename, separator, decimal)
+ M = csvRead(filename, separator, decimal, conversion)
+ M = csvRead(filename, separator, decimal, conversion, substitute)
+ M = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range)
+ M = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range, header)
+ [M, comments] = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range, header)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>filename</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the file path.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>separator</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the field separator used.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>decimal</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the decimal used.</para>
+ <para>
+ If <literal>decimal</literal> is different of <literal>[]</literal> and <literal>conversion</literal> is set to <literal>string</literal>, the decimal conversion will be done.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>conversion</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the type of the output
+ <literal>M</literal>. Available values are "string" or "double" (by default).
+ </para>
+ <para>
+ Note that <link linkend="read_csv">read_csv</link> has "string" as default.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>substitute</term>
+ <listitem>
+ <para>a m-by-2 matrix of strings, a replacing map (default = [],
+ meaning no replacements). The first column
+ <literal>substitute(:,1)</literal> contains the searched strings and
+ the second column <literal>substitute(:,2)</literal> contains the
+ replace strings. Every occurence of a searched string in the file is
+ replaced.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>regexpcomments</term>
+ <listitem>
+ <para>a string: a regexp to remove lines which match. (default:
+ [])
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>range</term>
+ <listitem>
+ <para>a 1-by-4 matrix of floating point integers, the range of rows
+ and columns which must be read (default range=[], meaning that all
+ the rows and columns). Specify range using the format <literal>[Row1 Column1 Row2 Column2]
+ </literal>
+ where (R1,C1) is the upper left corner of the
+ data to be read and (R2,C2) is the lower right corner.
+ </para>
+ <para>
+ <note>Note that the file has to be correctly formated. The range will be done in the memory on the parsed elements.</note>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>header</term>
+ <listitem>
+ <para>a 1-by-1 matrix of floating point integers, the number of lines to be ignored
+ at the beginning of the file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>M</term>
+ <listitem>
+ <para>a m-by-n matrix of strings or double.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>comments</term>
+ <listitem>
+ <para>a m-by-n matrix of strings matched by regexp.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Given an ascii file with comma separated values delimited fields,
+ this function returns the corresponding Scilab matrix of strings or
+ doubles.
+ </para>
+ <para>For example, the .csv data file may have been created by a
+ spreadsheet software using "Text and comma" format.
+ </para>
+ <para>It might happen that the columns are separated by a non-comma
+ separator. In this case, use csvRead(filename, separator) for another
+ choice of separator.
+ </para>
+ <para>The default value of the optional input arguments are defined by the
+ <literal>csvDefault</literal> function.
+ </para>
+ <para>Any optional input argument equal to the empty matrix
+ <literal>[]</literal> is set to its default value.
+ </para>
+ <para>When the input argument "conversion" is equal to "double", the
+ non-numeric fields within the .csv (e.g. strings) are converted into
+ NaN.
+ </para>
+ <para>csvRead is able to handle both UTF-8 and ASCII text files.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <para>The following script presents some basic uses of the
+ <literal>csvRead</literal> function.
+ </para>
+ <programlisting role="example"><![CDATA[// Create a file with some data separated with tabs.
+M = 1:50;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename, ascii(9), '.');
+
+// read csv file
+M1 = csvRead(filename,ascii(9), [], 'string')
+
+// Returns a double
+M2 = csvRead(filename,ascii(9), '.', 'double')
+
+// Compares original data and result.
+and(M == M2)
+
+// Use the substitude argument to manage
+// special data files.
+content = [
+"1"
+"Not-A-Number"
+"2"
+"Not-A-Number"
+];
+
+substitute = [
+"Not-A-Number" "Nan"
+];
+
+mputl(content,filename);
+M = csvRead(filename,",",".","double",substitute)
+isnan(M(2,1)) // Expected=%t
+isnan(M(4,1)) // Expected=%t
+
+ ]]></programlisting>
+ <para>The following script presents more practical uses of the
+ <literal>csvRead</literal> function.
+ </para>
+ <programlisting role="example"><![CDATA[// Define a matrix of strings
+Astr = [
+"1" "8" "15" "22" "29" "36" "43" "50"
+"2" "9" "16" "23" "30" "37" "44" "51"
+"3" "10" "17" "6+3*I" "31" "38" "45" "52"
+"4" "11" "18" "25" "32" "39" "46" "53"
+"5" "12" "19" "26" "33" "40" "47" "54"
+"6" "13" "20" "27" "34" "41" "48" "55"
+"+0" "-0" "Inf" "-Inf" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+
+// Create a file with some data separated with commas
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+// To see the file: edit(filename)
+
+// Read this file
+Bstr = csvRead ( filename )
+
+// Create a file with a particular separator: here ";"
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ";";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+
+//
+// Read the file and customize the separator
+csvRead ( filename , sep )
+ ]]></programlisting>
+ <para>The following script shows how to remove lines with regexp argument
+ of the <literal>csvRead</literal> function.
+ </para>
+ <programlisting role="example"><![CDATA[
+CSV = ["// tata"; ..
+"1,0,0,0,0"; ..
+"// titi"; ..
+"0,1,0,0,0"; ..
+"// toto"; ..
+"0,0,1,0,0"; ..
+"// tutu"];
+filename = fullfile(TMPDIR , 'foo.csv');
+mputl(CSV, filename);
+
+// remove lines with // @ beginning
+[M, comments] = csvRead(filename, [], [], [], [], '/\/\//')
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <para>Empty field are managed by csvRead</para>
+ <programlisting role="example"><![CDATA[
+csvWrite(['1','','3';'','','6'], TMPDIR + "/example.csv")
+csvRead(TMPDIR + "/example.csv", [], [], "string")
+csvRead(TMPDIR + "/example.csv", [], [], "double")
+ ]]></programlisting>
+ </refsection>
+ <programlisting role="example"><![CDATA[
+// Define a matrix of strings
+Astr = [
+"1" "8" "15" "22" "29" "36" "43" "50"
+"2" "9" "16" "23" "30" "37" "44" "51"
+"3" "10" "17" "6+3*I" "31" "38" "45" "52"
+"4" "11" "18" "25" "32" "39" "46" "53"
+"5" "12" "19" "26" "33" "40" "47" "54"
+"6" "13" "20" "27" "34" "41" "48" "55"
+"+0" "-0" "Inf" "-Inf" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+
+// Create a file with some data separated with commas
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+// To see the file: edit(filename)
+
+// Read this file
+Bstr = csvRead ( filename )
+
+// Create a file with a particular separator: here ";"
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ";";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+//
+// Read the file and customize the separator
+csvRead ( filename , sep )
+ ]]></programlisting>
+ <refsection>
+ <para>In the following script, the file "filename" is read by blocks of
+ 5000 rows. The algorithm stops when the number of rows actually read from
+ the file differ from 5000, i.e. when the end of the file has been
+ reached.
+ </para>
+ <programlisting role="example"><![CDATA[blocksize = 5000;
+C1 = 1;
+C2 = 3;
+iblock = 1
+while (%t)
+R1 = (iblock-1) * blocksize + 1;
+R2 = blocksize + R1-1;
+irange = [R1 C1 R2 C2];
+mprintf("Block #%d, rows #%d to #%d\n",iblock,R1,R2);
+tic();
+M=csvRead(filename , [] , [] , [] , [] , [] , [] , irange );
+t = toc();
+nrows = size(M,"r");
+ncols = size(M,"c");
+if ( nrows &gt; 0 ) then
+p = t/(nrows*ncols)*1.e6;
+mprintf(" Actual #rows=%d\n",nrows);
+mprintf(" T=%.3f (s)\n",t);
+mprintf(" T=%.1f (ms/cell)\n",p);
+end
+if ( nrows &lt; blocksize ) then
+mprintf("... End of the file.\n");
+break
+end
+iblock = iblock + 1;
+end
+ ]]></programlisting>
+ <para>This produces:</para>
+ <programlisting role="no-scilab-exec"><![CDATA[Block #1, rows #1 to #5000
+Actual #rows=5000
+T=3.135 (s)
+T=209.0 (ms/cell)
+Block #2, rows #5001 to #10000
+Actual #rows=5000
+T=3.139 (s)
+T=209.3 (ms/cell)
+Block #3, rows #10001 to #15000
+Actual #rows=5000
+T=3.151 (s)
+T=210.1 (ms/cell)
+etc....
+ ]]></programlisting>
+ Example with range
+ <programlisting role="example"><![CDATA[
+CSV = ["1,0,0,0,0"; ..
+"0,1,0,0,0"; ..
+"0,0,1,0,0"; ..
+"4,4,1,2,0"; ..
+"4,63,1,2,0"; ..
+"4,63,1,4,233"; ..
+"42,3,23,2,23"; ..
+];
+filename = fullfile(TMPDIR , 'foo.csv');
+mputl(CSV, filename);
+// Extract a subset of the csv file
+csvRead(filename, [], [], "double", [], [], [5 3 7 6])
+ ]]></programlisting>
+ Example with header
+ <programlisting role="example"><![CDATA[
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."];
+filename = fullfile(TMPDIR , 'foo.csv');
+csvWrite(rand(2,3), filename, ascii(9), ",", [], comments);
+
+header = 2;
+[M, c] = csvRead(filename, ascii(9), ",", "double", [], [], [], header) // Ignore the two first lines (the header)
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvWrite">csvWrite</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>
+ Function introduced. Based on the 'csv_readwrite' module. The only difference in the behavior compared to <link linkend="read_csv">read_csv</link> is that csvRead will try to convert value to double by default when read_csv will return value as string.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>
+ If <literal>decimal</literal> is different of <literal>[]</literal> and <literal>conversion</literal> is set to <literal>string</literal>, the decimal conversion will be done.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.5</revnumber>
+ <revremark>
+ Addition of the "header" input argument, to ignore headers.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/en_US/csvTextscan.xml b/modules/spreadsheet/help/en_US/csvTextscan.xml
new file mode 100755
index 000000000..7030d3aa3
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/csvTextscan.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Copyright (C) 2010-2011 - INRIA - Allan CORNET
+* Copyright (C) 2011 - INRIA - Michael Baudin
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+-->
+<refentry version="5.0-subset Scilab" xml:id="csvTextScan" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvTextScan</refname>
+
+ <refpurpose>Convert a comma-separated value to a matrix</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+
+ <synopsis>
+ A = csvTextScan(M)
+ A = csvTextScan(M, separator)
+ A = csvTextScan(M, separator, decimal)
+ A = csvTextScan(M, separator, decimal, conversion)
+ A = csvTextScan(M, separator, decimal, conversion, range)
+ </synopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Parameters</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>M</term>
+
+ <listitem>
+ <para>a m-by-1 or 1-by-m matrix of strings.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>separator</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the column separator mark.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>decimal</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the decimal mark. The available
+ values are "." or ",".
+ </para>
+ <para>
+ If <literal>decimal</literal> is different of <literal>[]</literal> and <literal>conversion</literal> is set to <literal>string</literal>, the decimal conversion will be done.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>conversion</term>
+
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the type of the output
+ <literal>A</literal>. Available values are "string" or
+ "double".
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>range</term>
+
+ <listitem>
+ <para>a 1-by-4 or 4-by-1 matrix of floating point integers, the
+ range of rows and columns which must be read (default range=[],
+ meaning that all the rows and columns). Specify range using the
+ format <literal>[R1 C1 R2 C2]</literal> where (R1,C1) is the upper
+ left corner of the data to be read and (R2,C2) is the lower right
+ corner.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>A</term>
+
+ <listitem>
+ <para>a m-by-n matrix of strings or double.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>Given an ascii file with delimited fields, this function returns the
+ corresponding Scilab matrix of strings or doubles.
+ </para>
+
+ <para>
+ The <literal>csvTextScan</literal> function has the same purpose as
+ <literal>csvRead</literal>, except that <literal>csvTextScan</literal>
+ reads in a string, while <literal>csvRead</literal> reads in a
+ file.
+ </para>
+
+ <para>The default value of the optional input arguments are defined by the
+ <literal>csvDefault</literal> function.
+ </para>
+
+ <para>Any optional input argument equal to the empty matrix
+ <literal>[]</literal> is set to its default value.
+ </para>
+
+ <para>When input argument "conversion" is equal to "double", strings are
+ converted as NaN.
+ </para>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+
+ <programlisting role="example"><![CDATA[
+// convert a csv string matrix to splitted string or double matrix
+A = ["1;3 + i"; "Nan;-Inf"]
+B = csvTextScan(A,';')
+C = csvTextScan(A,';',[],'double')
+//
+// Configure the decimal mark.
+Atext = [
+" 1,000000000D+00; 0,000000000D+00; 2,000000000D+02; Inf; 0,000000000D+00";
+" 1,000000000D+00; 1,00000000D-300; 2,000000000D+02; Inf; 0,000000000D+00";
+" 1,000000000D+00; 1,00000000D-200; 2,000000000D+02; 3,15000000D+300; 1,020000000D+02";
+" 9,999999999D-01; 1,00000000D-100; 2,000000000D+02; 2,960000000D+02; 1,170000000D+02";
+" 1,000000000D+00; Inf;-Inf; Nan; 0,000000000D+00"
+];
+csvTextScan( Atext , ";" , "," )
+ ]]>
+ </programlisting>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function introduced. Based on the 'csv_readwrite' module.</revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>
+ If <literal>decimal</literal> is different of <literal>[]</literal> and <literal>conversion</literal> is set to <literal>string</literal>, the decimal conversion will be done.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/en_US/csvWrite.xml b/modules/spreadsheet/help/en_US/csvWrite.xml
new file mode 100755
index 000000000..03bece61f
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/csvWrite.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvWrite" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvWrite</refname>
+ <refpurpose>Write comma-separated value file</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ csvWrite(M, filename)
+ csvWrite(M, filename, separator)
+ csvWrite(M, filename, separator, decimal)
+ csvWrite(M, filename, separator, decimal, precision)
+ csvWrite(M, filename, separator, decimal, precision, comments)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>filename</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the file path.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>M</term>
+ <listitem>
+ <para>a m-by-n matrix of strings or double (complex
+ supported).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>separator</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the column separator mark.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>decimal</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the decimal mark. The available
+ values are "." or ",".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>precision</term>
+ <listitem>
+ <para>a 1-by-1 matrix of strings, the C format.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>comments</term>
+ <listitem>
+ <para>a m-by-1 matrix of strings, the comments stored at the
+ beginning of the file. This option may be used, for example, to put
+ a licence header in a data file.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>This function writes matrix M into filename as comma-separated
+ values.
+ </para>
+ <para>The default value of the optional input arguments are defined by the
+ <literal>csvDefault</literal> function.
+ </para>
+ <para>Any optional input argument equal to the empty matrix
+ <literal>[]</literal> is set to its default value.
+ </para>
+ <para>
+ If the file <literal>filename</literal> already exists, it is
+ overwritten.
+ </para>
+ <para>
+ If relevant (ie with 'special' characters), the file will be saved as UTF-8.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <para>In the following example, we combine the
+ <literal>csvWrite</literal> and <literal>csvRead</literal>
+ functions.
+ </para>
+ <programlisting role="example"><![CDATA[// Save a matrix as csv file format
+M = [1:10] * 0.1;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename);
+
+// Read as text
+mgetl(filename)
+
+r = csvRead(filename);
+ ]]></programlisting>
+ <para>In the following example, we use various options of the
+ <literal>csvWrite</literal> function.
+ </para>
+ <programlisting role="example"><![CDATA[// Save a matrix as csv file format
+M = rand(2,3);
+filename = fullfile(TMPDIR, "data.csv");
+//
+// Use tabs as the separator
+csvWrite(M, filename,ascii(9));
+mgetl(filename)
+//
+// Use the "," as the decimal point
+// (and blank space as the separator).
+csvWrite(M, filename," ",",");
+mgetl(filename)
+//
+// Configure the precision.
+// Caution: this lower precision may generate
+// errors in a write-read cycle!
+csvWrite(M, filename,[],[],"%.8e");
+mgetl(filename)
+//
+// Configure the comments
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+];
+csvWrite(M, filename,[],[],[],comments);
+mgetl(filename)
+ ]]></programlisting>
+ <para>The following examples are more advanced uses of the
+ <literal>csvWrite</literal> function.
+ </para>
+ <programlisting role="example"><![CDATA[A = [
+1 0 200 %inf 0
+1 1.e-300 200 %inf 0
+9.99999999999990010e-001 9.99999999999999980e-201 200 3.15e300 102
+9.99999999899999990e-001 1.e-100 200 296 117
+1 %inf -%inf %nan 0
+];
+
+// Write into a file
+filename=fullfile(TMPDIR,"foo.csv");
+csvWrite ( A , filename );
+edit(filename)
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function introduced. Based on the 'csv_readwrite' module.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/en_US/read_csv.xml b/modules/spreadsheet/help/en_US/read_csv.xml
new file mode 100755
index 000000000..1c2d0bcff
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/read_csv.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="read_csv" scilab:needs-examples="no" xml:lang="en">
+ <refnamediv>
+ <refname>read_csv</refname>
+ <refpurpose>
+ reads comma-separated value file. Outclassed by <link linkend="csvRead">csvRead</link>
+ </refpurpose>
+ </refnamediv>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Unlike <link linkend="csvRead">csvRead</link>, the conversion is set to <literal>string</literal> by default to insure the compatibility with previous versions.
+ </para>
+ </refsection>
+
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>
+ read_csv is now fully based on <link linkend="csvRead">csvRead</link>.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/en_US/readxls.xml b/modules/spreadsheet/help/en_US/readxls.xml
new file mode 100755
index 000000000..ab53f8469
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/readxls.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="readxls">
+ <refnamediv>
+ <refname>readxls</refname>
+ <refpurpose>reads an Excel file</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>sheets = readxls(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>a character string: the path of the Excel file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sheets</term>
+ <listitem>
+ <para>
+ an <literal>mlist</literal> of type <literal>xls</literal>, with one field named <literal>sheets</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Given an Excel file path this function returns an <literal>mlist</literal> data structure
+ of type <literal>xls</literal>, with one field named <literal>sheets</literal>. The
+ <literal>sheets</literal> field itself contains a list of sheet data structure.
+ </para>
+ <para>
+ <literal>sheet=mlist(['xlssheet','name','text','value'],sheetname,Text,Value)</literal> where
+ <literal>sheetname</literal> is a character string containing the name of the sheet,
+ <literal>Text</literal> is a matrix of string which contains the cell's
+ strings and <literal>Value</literal> is a matrix of numbers which contains the cell's
+ values.
+ </para>
+ <para>
+ <warning>
+ Only BIFF8 Excel files (last Excel file version (2003)) are handled.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+Sheets = readxls('SCI/modules/spreadsheet/demos/xls/t1.xls')
+// some basic operations on Sheets
+typeof(Sheets)
+s1=Sheets(1) //get the first sheet
+typeof(s1)
+s1.value //get the first sheet value field
+s1.text //get the first sheet text field
+s1(2,:) //get the 2 row of the sheet
+typeof(s1(2,:))
+
+disp(s1)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ This function is based on the Scilab functions <literal>xls_open</literal>
+ and <literal>xls_read</literal>.
+ </para>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/en_US/write_csv.xml b/modules/spreadsheet/help/en_US/write_csv.xml
new file mode 100755
index 000000000..9a7714d50
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/write_csv.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="write_csv" scilab:needs-examples="no" xml:lang="en">
+ <refnamediv>
+ <refname>write_csv</refname>
+ <refpurpose>
+ writes comma-separated value fileOutclassed by <link linkend="csvWrite">csvWrite</link>
+ </refpurpose>
+ </refnamediv>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>
+ <link linkend="csvWrite">csvWrite</link> provide a better replacement of write_csv.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/en_US/xls_open.xml b/modules/spreadsheet/help/en_US/xls_open.xml
new file mode 100755
index 000000000..23c2fb7c5
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/xls_open.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="xls_open">
+ <refnamediv>
+ <refname>xls_open</refname>
+ <refpurpose>opens an Excel file for reading</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[fd,SST,Sheetnames,Sheetpos] = xls_open(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>a character string: the path of the Excel file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>a number: the logical unit on the Excel stream.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>SST</term>
+ <listitem>
+ <para>A vector of all character strings which appear in the Excel sheets.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetnames</term>
+ <listitem>
+ <para>a vector of strings: the sheet names.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para>a vector of numbers: the position of the beginning of sheets in the
+ Excel stream.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>This function first analyzes the ole2 data structure associated with the
+ given file to extract the Excel stream which is included in. After
+ that the Excel stream is saved in the <literal>TMDIR</literal> directory
+ and opened. The <literal>fd</literal> logical unit points to this temporary
+ file. Then the first sheet in this stream is read to get the global information
+ like number of sheets, sheet names <literal>Sheetnames</literal>, sheet
+ addresses within the stream <literal>Sheetpos</literal> and the
+ <literal>SST</literal> which contains all the strings used in the following
+ sheets.
+ </para>
+ <para>
+ The <literal>fd</literal> and <literal>Sheetpos</literal> data have to be passed to
+ <link linkend="xls_read">xls_read</link> to read the data sheets.
+ </para>
+ <para>
+ The <link linkend="readxls">readxls</link> function can be used to read all an Excel file
+ in one function with a single function call.
+ </para>
+ <para>
+ <warning>
+ Only BIFF8 Excel files (last Excel file version (2003)) are handled.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//Decode ole file, extract and open Excel stream
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//Read first data sheet
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//close the spreadsheet stream
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>This function is based on the Microsoft ole2 file documentation
+ (<ulink url="http://chicago.sourceforge.net/devel/docs/ole/">http://chicago.sourceforge.net/devel/docs/ole/</ulink>) and on Excel
+ stream description from OpenOffice (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ The ripole-0.1.4 procedure (<ulink url="http://www.pldaniels.com/ripole">http://www.pldaniels.com/ripole</ulink>) is used
+ to extract the spreadsheet stream out of the ole file.
+ </para>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/en_US/xls_read.xml b/modules/spreadsheet/help/en_US/xls_read.xml
new file mode 100755
index 000000000..0aa5c35d6
--- /dev/null
+++ b/modules/spreadsheet/help/en_US/xls_read.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="xls_read">
+ <refnamediv>
+ <refname>xls_read</refname>
+ <refpurpose>reads a sheet in an Excel file</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[Value,TextInd] = xls_read(fd,Sheetpos)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>
+ a number: the logical unit on the Excel stream returned by <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para> a number: the position of the beginning of the sheet in the
+ Excel stream. This position is one of those returned by <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Value</term>
+ <listitem>
+ <para>a matrix of numbers: the numerical data found in the sheet. The cells
+ without numerical data are represented by <literal>NaN</literal> values.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>TextInd</term>
+ <listitem>
+ <para>
+ a matrix of indices with the same size as <literal>Value</literal>. The 0
+ indices indicates that no string exists in the corresponding Excel
+ cell. A positive index <literal>i</literal> points to the string
+ <literal>SST(i)</literal> where <literal>SST</literal> is given by <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function reads an Excel sheet given a logical unit on an Excel stream
+ and the position of the beginning of the sheet within this stream. It
+ returns the numerical data and the strings contained by the Excel cells.
+ </para>
+ <para>
+ The <link linkend="readxls">readxls</link> function can be used to read all an Excel file
+ in one function with a single function call.
+ </para>
+ <para>
+ <warning>
+ Only BIFF8 Excel files (last Excel file version (2003)) are handled.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//Decode ole file, extract and open Excel stream
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//Read first data sheet
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//close the spreadsheet stream
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>This function is based on Excel
+ stream description from OpenOffice (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ This function uses the xls.c file which can be found in a Scilab source
+ version in the directory SCIDIR/modules/spreadsheet/src/c.
+ </para>
+ </refsection>
+</refentry>
+
diff --git a/modules/spreadsheet/help/fr_FR/addchapter.sce b/modules/spreadsheet/help/fr_FR/addchapter.sce
new file mode 100755
index 000000000..b4cdbfe5e
--- /dev/null
+++ b/modules/spreadsheet/help/fr_FR/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Tableur",SCI+"/modules/spreadsheet/help/fr_FR",%T);
+
diff --git a/modules/spreadsheet/help/ja_JP/addchapter.sce b/modules/spreadsheet/help/ja_JP/addchapter.sce
new file mode 100755
index 000000000..edf6b3972
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Spreadsheet",SCI+"/modules/spreadsheet/help/ja_JP",%T);
+
diff --git a/modules/spreadsheet/help/ja_JP/csvDefault.xml b/modules/spreadsheet/help/ja_JP/csvDefault.xml
new file mode 100755
index 000000000..247ec0f4f
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/csvDefault.xml
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvDefault" xml:lang="ja"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvDefault</refname>
+ <refpurpose>CSVファイルに関するデフォルト動作を取得/設定.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>allvalues = csvDefault() </synopsis>
+ <synopsis>value = csvDefault(field) </synopsis>
+ <synopsis>bRes = csvDefault(field, value) </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>パラメータ</title>
+ <variablelist>
+ <varlistentry>
+ <term>allvalues</term>
+ <listitem>
+ <para>6行2列の文字列行列で, 全フィールドの値です.
+ 最初の列には利用可能なフィールドが含まれ,
+ 2番目の列には現在の値が含まれます.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>field</term>
+ <listitem>
+ <para>1行1列の文字列行列で,
+ 取得または設定したフィールドの名前です.
+ <literal>field</literal>で利用可能な値は,
+ "separator", "decimal", "conversion", "precision", "regexp", "eol",
+ "encoding", "blank"です.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>value</term>
+ <listitem>
+ <para>
+ 1行1列の文字列行列で,
+ 取得または設定したフィールドの値です.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>bRes</term>
+ <listitem>
+ <para>
+ 1行1列の論理値行列で,
+ 値が正しく設定された場合は bResがtrueとなり,
+ そうでない場合はbResがfalseとなります.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ この関数によりCSVファイルのオプションを調べたり,設定
+ することができます.
+ これらのオプションはユーザが呼び出し時に指定しない場合に
+ 読み書き用の関数で使用されます.
+ </para>
+ <para>
+ 呼び出し手順 <literal>allvalues = csvDefault()</literal> は
+ 全フィールドの値を返します.
+ </para>
+ <para>
+ 呼び出し手順 <literal>value = csvDefault(field)</literal> は
+ 指定したフィールドに対応する値を返します.
+ </para>
+ <para>
+ 呼び出し手順 <literal>bRes = csvDefault(field, value)</literal>
+ により, 指定したフィールドに値を設定できます.
+ <itemizedlist>
+ <listitem>
+ <para>
+ 関数がフィールドに指定した値を設定できない場合,
+ <literal>bRes</literal> はfalseとなります. この場合,
+ フィールドの値は変更されません.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 関数が指定した値にフィールドを変更できた場合,
+ <literal>bRes</literal> は trueとなります.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ 利用可能なフィールドを以下に示します. <itemizedlist>
+ <listitem>
+ <para>field = "separator": CSVファイルにおける列の
+ セパレータ. デフォルトのセパレータ = ",".
+ </para>
+ </listitem>
+ <listitem>
+ <para>field = "decimal": CSVファイルで使用される小数点.
+ 利用可能な値は "." または "," です.
+ デフォルトの小数点 = '.'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>field = "conversion":
+ <literal>csvRead</literal>関数の出力型. 指定可能な値は
+ "string" または"double"です.
+ conversionのデフォルト値 = "double".
+ conversion = "string"の場合,
+ <literal>csvRead</literal> 関数は文字列の行列を
+ 返します.
+ conversion = "double"の場合,
+ <literal>csvRead</literal> 関数はdoubleの行列を
+ 返します.
+ </para>
+ </listitem>
+ <listitem>
+ <para>field = "precision":
+ <literal>csvWrite</literal>関数のdoubleから
+ 文字列を生成する際に使用されるCフォーマット.
+ デフォルト値は <literal>precision="%.17lg"</literal>です.
+ このフォーマットにより読み書きエラーフリーサイクル
+ を実行できます.
+ これは,doubleを.csvに保存してから,doubleを読み込むと,
+ 正しく同じ値が取得できることを意味します.
+ サポートされる形式を以下に示します: %type または
+ %[幅].[精度]型.
+ <itemizedlist>
+ <listitem>
+ <para>型: lf, lg, d, i, e, f, g</para>
+ </listitem>
+ <listitem>
+ <para>幅: オプションの数値で,出力文字の最小値を指定します.
+ </para>
+ </listitem>
+ <listitem>
+ <para>精度:
+ オプションの数値で,
+ 出力フィールドの全てまたは一部を出力する際の
+ 最大文字数,または
+ 整数値を出力する際の最小桁数を指定します.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>field = "regexp":
+ <literal>csvRead</literal>関数のコメントを
+ 展開する際に使用する正規表現式.
+ </para>
+ <para>デフォルトでは, この値は'' (正規表現なし)です.</para>
+ </listitem>
+ <listitem>
+ <para>field = "eol":
+ <literal>csvWrite</literal>関数で行を書き込む際に
+ 使用される改行.
+ </para>
+ <para>
+ 指定可能な値は"linux", "windows", "macos9"です.
+ </para>
+ <para>デフォルトでは, この値はプラットフォーム依存です.</para>
+ </listitem>
+ <listitem>
+ <para>field = "encoding":</para>
+ <para>指定可能な値は"utf-8", "iso-latin"です.</para>
+ <para>デフォルトでは, この値は"utf-8"です.</para>
+ </listitem>
+ <listitem>
+ <para>field = "blank": テキストをパースする前に
+ 空白行を全て削除します
+ </para>
+ <para>指定可能な値は "on", "off"です.</para>
+ <para>デフォルトでは, この値は "on"です.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example">// 利用可能な全フィールドを参照
+ allvalues = csvDefault()
+ // "precision"フィールドの値を取得
+ value = csvDefault("precision")
+ // "precision"フィールドの値を設定
+ bRes = csvDefault("precision","%.17e") // 期待値 = %t
+ // "precision"フィールドに不正な値を設定
+ bRes = csvDefault("precision","Ouch!") // 期待値 = %f
+ </programlisting>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+ <member>
+ <link linkend="csvWrite">csvWrite</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数が導入されました. 'csv_readwrite'モジュールに
+ 基づきます.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>'blank' がデフォルトで有効となりました.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/csvRead.xml b/modules/spreadsheet/help/ja_JP/csvRead.xml
new file mode 100755
index 000000000..ea00f5cc5
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/csvRead.xml
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvRead" xml:lang="ja"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvRead</refname>
+ <refpurpose>CSVファイルを読み込む</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>
+ M = csvRead(filename)
+ M = csvRead(filename, separator)
+ M = csvRead(filename, separator, decimal)
+ M = csvRead(filename, separator, decimal, conversion)
+ M = csvRead(filename, separator, decimal, conversion, substitute)
+ M = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range)
+ M = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range, header)
+ [M, comments] = csvRead(filename, separator, decimal, conversion, substitute, regexpcomments, range, header)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>filename</term>
+ <listitem>
+ <para>1行1列の文字列行列で,ファイルパスです.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>separator</term>
+ <listitem>
+ <para>1行1列の文字列行列で,
+ 使用されるフィールドセパレータ.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>decimal</term>
+ <listitem>
+ <para>
+ 1行1列の文字列行列で,使用される小数点.
+ </para>
+ <para>
+ <literal>decimal</literal> が <literal>[]</literal>
+ と異なり
+ <literal>conversion</literal> が <literal>string</literal>に
+ 設定された場合,小数点変換が行われます.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>conversion</term>
+ <listitem>
+ <para>
+ 1行1列の文字列行列で,出力<literal>M</literal>の型.
+ 利用可能な値は "string" または "double"
+ (デフォルト)です.
+ </para>
+ <para>
+ <link linkend="read_csv">read_csv</link> では "string" がデフォルトであることに
+ 注意してください.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>substitute</term>
+ <listitem>
+ <para>
+ m行2列の文字列行列で,
+ 置換マップ(デフォルト = [], 置換処理なし).
+ 最初の列
+ <literal>substitute(:,1)</literal> は
+ 検索する文字列を有し,
+ 2番目の列
+ <literal>substitute(:,2)</literal> は置換文字列を
+ 有します.
+ ファイル中に指定された文字列が現れる度に
+ 置換が行われます.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>rexgepcomments</term>
+ <listitem>
+ <para>文字列: 一致する行を削除するための正規表現.
+ (デフォルト:
+ [])
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>range</term>
+ <listitem>
+ <para>1行4列の浮動小数点の整数行列で,
+ 読み込む列および行の範囲です
+ (デフォルトの範囲は [] で,全ての行と列を意味します).
+ <literal>[R1 C1 R2 C2]</literal>の形式で範囲を
+ 指定してください.
+ ただし,(R1,C1)は読み込むデータの左上隅,
+ (R2,C2)は右下隅です.
+ </para>
+ <para>
+ <note>
+ ファイルが正しく整形されていることに注意してください.
+ この範囲はパースされた要素についてメモリ上で実行されます.
+ </note>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>header</term>
+ <listitem>
+ <para>
+ 1行1列の行列の浮動小数点整数, ファイルの先頭で無視される行の数.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>M</term>
+ <listitem>
+ <para>m行n列の文字列またはdouble行列.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>comments</term>
+ <listitem>
+ <para>正規表現にマッチしたm行n列の文字列行列.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ カンマ区切りの値をフィールドとするアスキーファイルを指定すると,
+ この関数は対応する文字列またはdoubleのScilab行列を返します.
+ </para>
+ <para>
+ 例えば,.csvデータファイルは
+ 表計算ソフトウェアにより"テキスト及びカンマ"形式で
+ 作成されたものとすることができます.
+ </para>
+ <para>
+ 列はカンマ以外で区切られたものとすることもできます.
+ この場合, 別のセパレータを指定する
+ csvRead(filename, separator) を使用してください.
+ </para>
+ <para>
+ オプションの入力引数のデフォルト値は,
+ <literal>csvDefault</literal> 関数で定義されます.
+ </para>
+ <para>
+ オプションの入力引数に空の行列<literal>[]</literal>を指定すると,
+ デフォルト値が設定されます.
+ </para>
+
+ <para>
+ 入力引数 "conversion" が "double" の時,
+ .csvの中の数値以外のフィールド(例:文字列)は NaNに変換されます.
+ </para>
+ <para>csvRead は UTF-8 および ASCII テキストファイルを読み込むことができます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <para>
+ 以下のスクリプトは,
+ <literal>csvRead</literal>関数のいくつかの基本的な使用例を示します.
+ </para>
+ <programlisting role="example"><![CDATA[// タブ区切りのデータを含むファイルを生成
+M = 1:50;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename, ascii(9), '.');
+// csvファイルを読み込む
+M1 = csvRead(filename,ascii(9), [], 'string')
+// doubleを返す
+M2 = csvRead(filename,ascii(9), '.', 'double')
+// 元のデータを結果と比較
+and(M == M2)
+// 特殊なデータファイルを管理するために
+// 置換用引数を使用
+content = [
+"1"
+"Not-A-Number"
+"2"
+"Not-A-Number"
+];
+substitute = [
+"Not-A-Number" "Nan"
+];
+mputl(content,filename);
+M = csvRead(filename,",",".","double",substitute)
+isnan(M(2,1)) // Expected=%t
+isnan(M(4,1)) // Expected=%t
+ ]]></programlisting>
+ <para>
+ 以下のスクリプトは,
+ <literal>csvRead</literal>関数のより実用的な使用例を示します.
+ </para>
+ <programlisting role="example"><![CDATA[// 文字列の行列を定義
+Astr = [
+"1" "8" "15" "22" "29" "36" "43" "50"
+"2" "9" "16" "23" "30" "37" "44" "51"
+"3" "10" "17" "6+3*I" "31" "38" "45" "52"
+"4" "11" "18" "25" "32" "39" "46" "53"
+"5" "12" "19" "26" "33" "40" "47" "54"
+"6" "13" "20" "27" "34" "41" "48" "55"
+"+0" "-0" "Inf" "-Inf" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+// カンマ区切りのデータを有するファイルを作成
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+// ファイルを参照するには: edit(filename)
+// このファイルを読み込む
+Bstr = csvRead ( filename )
+// 特殊なセパレータを有するファイルを作成: ここでは ";"
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ";";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+//
+// セパレータを指定してファイルを読み込む
+csvRead ( filename , sep )
+ ]]></programlisting>
+ <para>
+ 以下のスクリプトは
+ <literal>csvRead</literal> 関数のregexp引数により
+ 行を削除する例を示します.
+ </para>
+ <programlisting role="example"><![CDATA[
+CSV = ["// tata"; ..
+"1,0,0,0,0"; ..
+"// titi"; ..
+"0,1,0,0,0"; ..
+"// toto"; ..
+"0,0,1,0,0"; ..
+"// tutu"];
+filename = fullfile(TMPDIR , 'foo.csv');
+mputl(CSV, filename);
+// @ で始まる行を削除
+[M, comments] = csvRead(filename, [], [], [], [], '/\/\//')
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <para>空のフィールドはcsvReadで管理されます</para>
+ <programlisting role="example"><![CDATA[
+csvWrite(['1','','3';'','','6'], TMPDIR + "/example.csv")
+csvRead(TMPDIR + "/example.csv", [], [], "string")
+csvRead(TMPDIR + "/example.csv", [], [], "double")
+ ]]></programlisting>
+ </refsection>
+ <programlisting role="example"><![CDATA[
+// 文字列の行列を定義
+Astr = [
+"1" "8" "15" "22" "29" "36" "43" "50"
+"2" "9" "16" "23" "30" "37" "44" "51"
+"3" "10" "17" "6+3*I" "31" "38" "45" "52"
+"4" "11" "18" "25" "32" "39" "46" "53"
+"5" "12" "19" "26" "33" "40" "47" "54"
+"6" "13" "20" "27" "34" "41" "48" "55"
+"+0" "-0" "Inf" "-Inf" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+// カンマ区切りのデータを有するファイルを作成
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+// ファイルを参照するには: edit(filename)
+// このファイルを読み込む
+Bstr = csvRead ( filename )
+// 特殊なセパレータを有するファイルを作成: ここでは ";"
+filename = fullfile(TMPDIR , 'foo.csv');
+sep = ";";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+//
+// セパレータを指定してファイルを読み込む
+csvRead ( filename , sep )
+ ]]></programlisting>
+ <refsection>
+ <para>
+ 以下のスクリプトでは, ファイル "filename" は
+ 5000行単位のブロックで読みこまれます.
+ 実際に読み込まれたファイルの行数が5000行に
+ 満たない時, すなわち, ファイルの終端に達した時,
+ このアルゴリズムは中断します.
+ </para>
+ <programlisting role="example"><![CDATA[blocksize = 5000;
+C1 = 1;
+C2 = 3;
+iblock = 1
+while (%t)
+R1 = (iblock-1) * blocksize + 1;
+R2 = blocksize + R1-1;
+irange = [R1 C1 R2 C2];
+mprintf("Block #%d, rows #%d to #%d\n",iblock,R1,R2);
+tic();
+M=csvRead(filename , [] , [] , [] , [] , [] , [] , irange );
+t = toc();
+nrows = size(M,"r");
+ncols = size(M,"c");
+if ( nrows &gt; 0 ) then
+p = t/(nrows*ncols)*1.e6;
+mprintf(" Actual #rows=%d\n",nrows);
+mprintf(" T=%.3f (s)\n",t);
+mprintf(" T=%.1f (ms/cell)\n",p);
+end
+if ( nrows &lt; blocksize ) then
+mprintf("... End of the file.\n");
+break
+end
+iblock = iblock + 1;
+end
+ ]]></programlisting>
+ <para>出力は以下のようになります :</para>
+ <programlisting role="no-scilab-exec"><![CDATA[Block #1, rows #1 to #5000
+Actual #rows=5000
+T=3.135 (s)
+T=209.0 (ms/cell)
+Block #2, rows #5001 to #10000
+Actual #rows=5000
+T=3.139 (s)
+T=209.3 (ms/cell)
+Block #3, rows #10001 to #15000
+Actual #rows=5000
+T=3.151 (s)
+T=210.1 (ms/cell)
+etc....
+ ]]></programlisting>
+ 範囲を有する例
+ <programlisting role="example"><![CDATA[
+CSV = ["1,0,0,0,0"; ..
+"0,1,0,0,0"; ..
+"0,0,1,0,0"; ..
+"4,4,1,2,0"; ..
+"4,63,1,2,0"; ..
+"4,63,1,4,233"; ..
+"42,3,23,2,23"; ..
+];
+filename = fullfile(TMPDIR , 'foo.csv');
+mputl(CSV, filename);
+// csvファイルの一部を展開
+csvRead(filename, [], [], "double", [], [], [5 3 7 6])
+ ]]></programlisting>
+ ヘッダを有する例
+ <programlisting role="example"><![CDATA[
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."];
+filename = fullfile(TMPDIR , 'foo.csv');
+csvWrite(rand(2,3), filename, ascii(9), ",", [], comments);
+header = 2;
+[M, c] = csvRead(filename, ascii(9), ",", "double", [], [], [], header) // 最初の2行(ヘッダ)を無視
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvWrite">csvWrite</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数が導入されました.
+ 'csv_readwrite'モジュールに基づきます.
+ <link linkend="read_csv">read_csv</link> と比べた場合の
+ 動作の唯一の差異は,
+ read_csvが値を文字列として返す時,デフォルトで値をdoubleに変換しようとする
+ ことです.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>
+ <literal>decimal</literal> が <literal>[]</literal> 以外で,
+ <literal>conversion</literal> が <literal>string</literal>に設定された場合,
+ 小数点変換が行われます.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.5</revnumber>
+ <revremark>
+ ヘッダを無視するために,入力引数"header"が追加されました.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/csvTextscan.xml b/modules/spreadsheet/help/ja_JP/csvTextscan.xml
new file mode 100755
index 000000000..341fa9723
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/csvTextscan.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvTextScan" xml:lang="ja"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvTextScan</refname>
+ <refpurpose>カンマ区切りの値を行列に変換</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>
+ A = csvTextScan(M)
+ A = csvTextScan(M, separator)
+ A = csvTextScan(M, separator, decimal)
+ A = csvTextScan(M, separator, decimal, conversion)
+ A = csvTextScan(M, separator, decimal, conversion, range)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>パラメータ</title>
+ <variablelist>
+ <varlistentry>
+ <term>M</term>
+ <listitem>
+ <para>m行1列または1行m列の文字列の行列.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>separator</term>
+ <listitem>
+ <para>1行1列の文字列行列, 列セパレータ記号.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>decimal</term>
+ <listitem>
+ <para>1行1列の文字列行列, 小数点記号. 利用可能な値は
+ "." または ",".
+ </para>
+ <para>
+ <literal>decimal</literal> が <literal>[]</literal> 以外で
+ <literal>conversion</literal> が <literal>string</literal>
+ に設定された場合, 小数点変換が行われます.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>conversion</term>
+ <listitem>
+ <para>
+ 1行1列の文字列行列,出力<literal>A</literal>の型です.
+ 利用可能な値は"string" または "double"です.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>range</term>
+ <listitem>
+ <para>
+ 1行4列または4行1列の浮動小数点の整数行列で,
+ 読み込む列および行の範囲です
+ (デフォルトの範囲は [] で,全ての行と列を意味します).
+ <literal>[R1 C1 R2 C2]</literal>の形式で範囲を
+ 指定してください.
+ ただし,(R1,C1)は読み込むデータの左上隅,
+ (R2,C2)は右下隅です.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>m行n列の文字列またはdouble行列.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ 区切られたフィールドを有するアスキーファイルを指定すると,
+ この関数は対応する文字列またはdoubleのScilab行列を返します.
+ </para>
+ <para>
+ <literal>csvTextScan</literal> 関数の用途は
+ <literal>csvRead</literal>と同じですが,
+ <literal>csvRead</literal>がファイルから読み込むのに対して,
+ 文字列から読み込みます.
+ </para>
+ <para>
+ オプションの入力引数のデフォルト値は,
+ <literal>csvDefault</literal> 関数により定義されます.
+ </para>
+ <para>
+ オプションの入力引数に空の行列<literal>[]</literal>を指定すると,
+ デフォルト値が設定されます.
+ </para>
+ <para>
+ 入力引数 "conversion" が "double" の時,
+ .csvの中の数値以外のフィールド(例:文字列)は NaNに変換されます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+// CSV文字列行列を文字列またはdouble行列に変換
+A = ["1;3 + i"; "Nan;-Inf"]
+B = csvTextScan(A,';')
+C = csvTextScan(A,';',[],'double')
+//
+// 小数点記号を設定
+Atext = [
+" 1,000000000D+00; 0,000000000D+00; 2,000000000D+02; Inf; 0,000000000D+00";
+" 1,000000000D+00; 1,00000000D-300; 2,000000000D+02; Inf; 0,000000000D+00";
+" 1,000000000D+00; 1,00000000D-200; 2,000000000D+02; 3,15000000D+300; 1,020000000D+02";
+" 9,999999999D-01; 1,00000000D-100; 2,000000000D+02; 2,960000000D+02; 1,170000000D+02";
+" 1,000000000D+00; Inf;-Inf; Nan; 0,000000000D+00"
+];
+csvTextScan( Atext , ";" , "," )
+ ]]>
+ </programlisting>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数が導入されました.
+ 'csv_readwrite'モジュールに基づきます.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>5.4.1</revnumber>
+ <revremark>
+ <literal>decimal</literal> が <literal>[]</literal> と
+ 異なり, <literal>conversion</literal> が
+ <literal>string</literal>に設定された場合,
+ 小数点変換が行われます.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/csvWrite.xml b/modules/spreadsheet/help/ja_JP/csvWrite.xml
new file mode 100755
index 000000000..25f408397
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/csvWrite.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2010-2011 - INRIA - Allan CORNET
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ -->
+<refentry version="5.0-subset Scilab" xml:id="csvWrite" xml:lang="ja"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>csvWrite</refname>
+ <refpurpose>CSVファイルを書き込む</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>
+ csvWrite(M, filename)
+ csvWrite(M, filename, separator)
+ csvWrite(M, filename, separator, decimal)
+ csvWrite(M, filename, separator, decimal, precision)
+ csvWrite(M, filename, separator, decimal, precision, comments)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>filename</term>
+ <listitem>
+ <para>1行1列の文字列行列, ファイルのパス.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>M</term>
+ <listitem>
+ <para>m行n列の文字列またはdoubleの行列
+ (複素数がサポートされています).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>separator</term>
+ <listitem>
+ <para>1行1列の文字列の行列, 列セパレータ記号.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>decimal</term>
+ <listitem>
+ <para>1行1列の文字列の行列, 小数点記号.
+ 利用可能な値は"." または ",".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>precision</term>
+ <listitem>
+ <para>1行1列の文字列の行列, C形式.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>comments</term>
+ <listitem>
+ <para>m行1列の文字列の行列,
+ ファイルの先頭に保存されるコメント.
+ このオプションは,例えば,
+ ライセンスヘッダをデータファイルに
+ 記入するために使用できます.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ この関数は,行列 M を filename にカンマ区切りの値として
+ 書き込みます.
+ </para>
+ <para>
+ オプションの入力引数のデフォルト値は
+ <literal>csvDefault</literal> 関数で定義されます.
+ </para>
+ <para>
+ オプションの入力引数に空の行列<literal>[]</literal>を指定すると,
+ デフォルト値が設定されます.
+ </para>
+ <para>
+ <literal>filename</literal> がすでに存在する場合,
+ 上書きされます.
+ </para>
+ <para>
+ 関係がある場合 (すなわち,'特殊'文字がある場合),ファイルはUTF-8として保存されます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <para>
+ 以下の例では,
+ <literal>csvWrite</literal> および <literal>csvRead</literal>
+ 関数を組み合わせて使用します.
+ </para>
+ <programlisting role="example"><![CDATA[// CSVファイル形式で行列を保存
+M = [1:10] * 0.1;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename);
+// テキストとして読み込む
+mgetl(filename)
+r = csvRead(filename);
+ ]]></programlisting>
+ <para>
+ 以下の例では,
+ <literal>csvWrite</literal> 関数の種々のオプションを使用します.
+ </para>
+ <programlisting role="example"><![CDATA[// CSVファイル形式で行列を保存
+M = rand(2,3);
+filename = fullfile(TMPDIR, "data.csv");
+//
+// セパレータとしてタブを使用
+csvWrite(M, filename,ascii(9));
+mgetl(filename)
+//
+// 小数点として "," を使用
+// (そしてセパレータとして空白を使用).
+csvWrite(M, filename," ",",");
+mgetl(filename)
+//
+// 精度を指定
+// 注意: このより低い精度により読み書きサイクルで
+// 誤差を発生する可能性があります!
+csvWrite(M, filename,[],[],"%.8e");
+mgetl(filename)
+//
+// コメントを指定
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+];
+csvWrite(M, filename,[],[],[],comments);
+mgetl(filename)
+ ]]></programlisting>
+ <para>以下の例は
+ <literal>csvWrite</literal>関数のより高度な使用例を示します.
+ </para>
+ <programlisting role="example"><![CDATA[A = [
+1 0 200 %inf 0
+1 1.e-300 200 %inf 0
+9.99999999999990010e-001 9.99999999999999980e-201 200 3.15e300 102
+9.99999999899999990e-001 1.e-100 200 296 117
+1 %inf -%inf %nan 0
+];
+// ファイルに書き込む
+filename=fullfile(TMPDIR,"foo.csv");
+csvWrite ( A , filename );
+edit(filename)
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="csvRead">csvRead</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数が導入されました. 'csv_readwrite'モジュール
+ に基づきます.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/read_csv.xml b/modules/spreadsheet/help/ja_JP/read_csv.xml
new file mode 100755
index 000000000..8f8bafe8b
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/read_csv.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="read_csv" xml:lang="ja">
+ <refnamediv>
+ <refname>read_csv</refname>
+ <refpurpose>
+ カンマ区切り形式のファイルを読み込む.
+ <link linkend="csvRead">csvRead</link>で置換されています.
+ </refpurpose>
+ </refnamediv>
+ <refsection>
+ <title>説明</title>
+ <para>
+ <link linkend="csvRead">csvRead</link>と異なり,
+ 以前のバージョンとの互換性を維持するために
+ 変換はデフォルトで<literal>string</literal>に設定されます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>
+ read_csvは,完全に<link linkend="csvRead">csvRead</link>に基づいています.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/readxls.xml b/modules/spreadsheet/help/ja_JP/readxls.xml
new file mode 100755
index 000000000..1d33a69b0
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/readxls.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="readxls">
+ <refnamediv>
+ <refname>readxls</refname>
+ <refpurpose>Excelファイルを読み込む</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>sheets = readxls(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>文字列: Excelファイルのパス.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sheets</term>
+ <listitem>
+ <para>
+ <literal>xls</literal>型の<literal>mlist</literal>で,
+ <literal>sheets</literal>という名前のフィールドを有します
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ Excelファイルのパスを指定すると,この関数は
+ <literal>sheets</literal>という名前のフィールドを有する<literal>xls</literal>
+ 型の <literal>mlist</literal>データ構造体を返します.
+ この<literal>sheets</literal> フィールドはそれ自体 sheetデータ構造体の
+ リストです.
+ </para>
+ <para>
+ <literal>sheet=mlist(['xlssheet','name','text','value'],sheetname,Text,Value)</literal> ただし,
+ <literal>sheetname</literal>はシートの名前を有する文字列です.
+ <literal>Text</literal> はセルの文字列を有する文字列の行列,
+ <literal>Value</literal>はセルの値を有する数値の行列です.
+ </para>
+ <para>
+ <warning>
+ BIFF8 Excelファイル(最近のExcelファイルのバージョン(2003))のみが処理可能です.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+Sheets = readxls('SCI/modules/spreadsheet/demos/xls/t1.xls')
+// シートへの基本的な処理
+typeof(Sheets)
+s1=Sheets(1) //最初のシートを取得
+typeof(s1)
+s1.value //最初のシートのvalueフィールドを取得
+s1.text //最初のシートのtextフィールドを取得
+s1(2,:) //シートの2番目の行を取得
+typeof(s1(2,:))
+disp(s1)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>使用される関数</title>
+ <para>
+ この関数はScilab関数 <literal>xls_open</literal>
+ および<literal>xls_read</literal>に基づいています.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/write_csv.xml b/modules/spreadsheet/help/ja_JP/write_csv.xml
new file mode 100755
index 000000000..a573310dd
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/write_csv.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="write_csv" xml:lang="ja">
+ <refnamediv>
+ <refname>write_csv</refname>
+ <refpurpose>
+ カンマ区切り形式でファイルに書き込む.
+ <link linkend="csvWrite">csvWrite</link>で置換.
+ </refpurpose>
+ </refnamediv>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>
+ <link linkend="csvWrite">csvWrite</link> はwrite_csvのより良い代替品を提供します.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/xls_open.xml b/modules/spreadsheet/help/ja_JP/xls_open.xml
new file mode 100755
index 000000000..d84b54b6f
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/xls_open.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="xls_open">
+ <refnamediv>
+ <refname>xls_open</refname>
+ <refpurpose>Excelファイルを読み込み用に開く</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C呼び出し手順</title>
+ <synopsis>[fd,SST,Sheetnames,Sheetpos] = xls_open(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>文字列: Excelファイルのパス
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>数値: Excelストリームの論理ユニット.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>SST</term>
+ <listitem>
+ <para>Excelシートに全ての現れる文字列のベクトル.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetnames</term>
+ <listitem>
+ <para>文字列ベクトル: シート名.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para>数値ベクトル: Excelストリームにおけるシートの開始位置.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>この関数は,指定したファイルが属するExcelストリームを展開するために
+ まず指定したファイルに関するOLE2データ構造体を解析します.
+ その後,Excelストリームは<literal>TMDIR</literal>ディレクトリに保存され,
+ オープンされます.
+ 続いてこのストリームの最初のシートが読み込まれ,
+ シート数,シート名,ストリームにおける
+ シートの位置のようなグローバル情報,および以下のシートで使用される全ての文字列を含む
+ <literal>SST</literal>が取得されます.
+ </para>
+ <para>
+ <literal>fd</literal> および <literal>Sheetpos</literal> データ
+ データシートを読み込む際に <link linkend="xls_read">xls_read</link>に指定する必要があります.
+ </para>
+ <para>
+ 1つの関数で1回関数コールをすることにより
+ Excelファイルを全て読み込む際には<link linkend="readxls">readxls</link>関数を
+ 使用することができます.
+ </para>
+ <para>
+ <warning>
+ BIFF8 Excelファイル(最近のExcelファイルのバージョン(2003))のみが処理可能です.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+//OLEファイルをデコード,展開し,Excelストリームをオープン
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//最初のデータシートを読み込む
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//スプレッドシートストリームを閉じる
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>参考文献</title>
+ <para>この関数はMicrosoft ole2 ファイルのドキュメント
+ (<ulink url="http://chicago.sourceforge.net/devel/docs/ole/">http://chicago.sourceforge.net/devel/docs/ole/</ulink>) および OpenOfficeのExcel
+ ストリームに関する説明 (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>)に基づいています.
+ </para>
+ </refsection>
+ <refsection>
+ <title>使用される関数</title>
+ <para>
+ OLEファイルからスプレッドシートストリームを展開するために
+ ripole-0.1.4 プロシージャ (<ulink url="http://www.pldaniels.com/ripole">http://www.pldaniels.com/ripole</ulink>) が使用されています.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ja_JP/xls_read.xml b/modules/spreadsheet/help/ja_JP/xls_read.xml
new file mode 100755
index 000000000..82d1dd292
--- /dev/null
+++ b/modules/spreadsheet/help/ja_JP/xls_read.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="xls_read">
+ <refnamediv>
+ <refname>xls_read</refname>
+ <refpurpose>Excelファイルからシートを読み込む</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>[Value,TextInd] = xls_read(fd,Sheetpos)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>
+ 数値: <link linkend="xls_open">xls_open</link>により返されたExcelストリームの論理ユニット.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para>
+ 数値:
+ Excelストリームにおけるシートの開始位置. この位置は
+ <link linkend="xls_open">xls_open</link>により返された値です.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Value</term>
+ <listitem>
+ <para>数値の行列, シートでみつかった数値データ.
+ 数値データではないセルは値<literal>NaN</literal>で表されます.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>TextInd</term>
+ <listitem>
+ <para>
+ <literal>Value</literal>と同じ大きさのインデックスの行列.
+ インデックス 0 は,対応するExcelのセルに文字列が存在しないことを示します.
+ 正のインデックス<literal>i</literal>は
+ 文字列<literal>SST(i)</literal>を指します.
+ ただし,<literal>SST</literal>は<link linkend="xls_open">xls_open</link>の出力です.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ Excelストリームの論理ユニットとこのストリーム内のシートの先頭位置を指定すると,
+ この関数はExcelシートを読み込みます.
+ この関数はExcelセルが有する数値データおよび文字列を返します.
+ </para>
+ <para>
+ 1つの関数で1回関数コールをすることにより
+ Excelファイルを全て読み込む際には<link linkend="readxls">readxls</link>関数を
+ 使用することができます.
+ </para>
+ <para>
+ <warning>
+ BIFF8 Excelファイル(最近のExcelファイルのバージョン(2003))のみが処理可能です.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+//OLEファイルをデコード,展開し,Excelストリームをオープン
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//最初のデータシートを読み込む
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//スプレッドシートストリームを閉じる
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>参考文献</title>
+ <para>
+ この関数は,OpenOfficeのExcelストリームに関する説明
+ (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">
+ http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>)に基づいています.
+ </para>
+ </refsection>
+ <refsection>
+ <title>使用される関数</title>
+ <para>
+ この関数は, Scilabソース版のディレクトリSCIDIR/modules/spreadsheet/src/c
+ にあるxls.cを使用します.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/pt_BR/addchapter.sce b/modules/spreadsheet/help/pt_BR/addchapter.sce
new file mode 100755
index 000000000..67aeed86f
--- /dev/null
+++ b/modules/spreadsheet/help/pt_BR/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Planilhas",SCI+"/modules/spreadsheet/help/pt_BR",%T);
+
diff --git a/modules/spreadsheet/help/pt_BR/readxls.xml b/modules/spreadsheet/help/pt_BR/readxls.xml
new file mode 100755
index 000000000..cd2a3c93c
--- /dev/null
+++ b/modules/spreadsheet/help/pt_BR/readxls.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="readxls" xml:lang="en">
+ <refnamediv>
+ <refname>readxls</refname>
+ <refpurpose>l um arquivo Excel</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Seqncia de Chamamento</title>
+ <synopsis>sheets = readxls(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parmetros</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>string: o endereo do arquivo Excel</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sheets</term>
+ <listitem>
+ <para>
+ um <literal>mlist</literal> de tipo <literal>xls</literal>,
+ com um campo chamado <literal>sheets</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Descrio</title>
+ <para>Dado um endereo de um arquivo Excel, esta funo retorna uma
+ estrutura de dados <literal>mlist</literal> do tipo
+ <literal>xls</literal>, com um campo chamado <literal>sheets</literal>. O
+ campo <literal>sheets</literal> contm uma lista da estutura de dados
+ folha.
+ </para>
+ <para>
+ <literal>sheet=mlist(['xlssheet','name','text','value'],sheetname,Text,Value)</literal>
+ onde <literal>sheetname</literal> um string contendo o nome da folha,
+ <literal>Text</literal> uma matriz de strings que contm os strings e
+ todas as clulas <literal>Value</literal> uma matriz de nmeros que
+ contm todos os valores das clulas.
+ </para>
+ <para>
+ <warning>
+ AVISO: apenas arquivos Excel BIFF8 (ltima verso do Excel (2003)) so
+ manipulados
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Exemplos</title>
+ <programlisting role="example"><![CDATA[
+Sheets = readxls('SCI/modules/spreadsheet/demos/xls/t1.xls')
+// algumas operaes bsicas sobre Sheets
+typeof(Sheets)
+s1=Sheets(1) //obtendo a primeira folha
+typeof(s1)
+s1.value //obtendo o campo do valor da primeira folha
+s1.text //obtendo o campo do texto da primeira folha
+s1(2,:) //obtendo a segunda linha da folha
+typeof(s1(2,:))
+
+disp(s1)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>Ver Tambm</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Funes Utilizadas</title>
+ <para>
+ Esta funo baseada nas funes Scilab <literal>xls_open</literal>
+ e <literal>xls_read</literal>.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/pt_BR/xls_open.xml b/modules/spreadsheet/help/pt_BR/xls_open.xml
new file mode 100755
index 000000000..da04a55a0
--- /dev/null
+++ b/modules/spreadsheet/help/pt_BR/xls_open.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xls_open" xml:lang="en">
+ <refnamediv>
+ <refname>xls_open</refname>
+ <refpurpose>abre um arquivo Excel para leitura</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Seqncia de Chamamento</title>
+ <synopsis>[fd,SST,Sheetnames,Sheetpos] = xls_open(file_path)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parmetros</title>
+ <variablelist>
+ <varlistentry>
+ <term>file_path</term>
+ <listitem>
+ <para>string: o endereo do arquivo Excel.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>nmero, a unidade lgica do fluxo de dados do Excel</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>SST</term>
+ <listitem>
+ <para>vetor de todos os strings que aparecem na folha do
+ Excel
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetnames</term>
+ <listitem>
+ <para>vetor de strings, os nomes das folhas</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para>vetor de nmeros,as posies dos incios das folhas no fluxo
+ de dados do Excel
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Descrio</title>
+ <para>Esta funo primeiro analisa a estrutura de dados ole2 associada ao
+ dado arquivo para extrair o fluxo de dado do Excel no qual est contido.
+ Aps isso, o fluxo de dados do Excel salvo no diretrio
+ <literal>TMDIR</literal> e aberto. Uma unidade lgica
+ <literal>fd</literal> aponta para este arquivo temporrio. Ento, a
+ primeira folha neste fluxo lida para se obter informaes globais como o
+ nmero de folhas, o nome das folhas <literal>Sheetnames</literal>,
+ endereos das folhas dentro do fluxo <literal>Sheetpos</literal> e
+ <literal>SST</literal> que contm todos os strings utilizados nas
+ folhas.
+ </para>
+ <para>
+ Os dados <literal>fd</literal> e <literal>Sheetpos</literal> devem
+ ser passados para <link linkend="xls_read">xls_read</link> para se ler as
+ folhas de dados
+ </para>
+ <para>
+ A funo <link linkend="readxls">readxls</link> pode ser usada para
+ se ler todo um arquivo Excel em uma funo atravs de uma nica chamada de
+ funo.
+ </para>
+ <para>
+ <warning>AVISO: apenas arquivos Excel BIFF8 (ltima verso do Excel (2003))
+ so manipulados.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Exemplos</title>
+ <programlisting role="example"><![CDATA[
+//Decodificando o arquivo ole, extraindo e abrindo o fluxo de dados do Excel
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//Lendo a primeira folha de dados
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//fechando o fluxo da planilha
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>Ver Tambm</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_read">xls_read</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliografia</title>
+ <para>Esta funo baseada na documentao do arquivo ole2 da Microsoft
+ (<ulink url="http://chicago.sourceforge.net/devel/docs/ole/">http://chicago.sourceforge.net/devel/docs/ole/</ulink>)
+ e na descrio do OpenOffice sobre fluxo de dados do Excel (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Funes Utilizadas</title>
+ <para>
+ O procedure ripole-0.1.4 <ulink url="http://www.pldaniels.com/ripole">http://www.pldaniels.com/ripole</ulink>)
+ utilizado para extrair do arquivo ole o fluxo de dados da planilha.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/pt_BR/xls_read.xml b/modules/spreadsheet/help/pt_BR/xls_read.xml
new file mode 100755
index 000000000..6da9ffe13
--- /dev/null
+++ b/modules/spreadsheet/help/pt_BR/xls_read.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xls_read" xml:lang="en">
+ <refnamediv>
+ <refname>xls_read</refname>
+ <refpurpose>l uma folha em um arquivo Excel</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Seqncia de Chamamento</title>
+ <synopsis>[Value,TextInd] = xls_read(fd,Sheetpos)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parmetros</title>
+ <variablelist>
+ <varlistentry>
+ <term>fd</term>
+ <listitem>
+ <para>um nmero, a unidade lgica do fluxo de dados do Excel
+ retornado por <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sheetpos</term>
+ <listitem>
+ <para>um nmero: a posio do incio da folha no fluxo de dados
+ Excel. Esta posio uma daquelas retornadas por <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Value</term>
+ <listitem>
+ <para>matriz de nmeros, os dados numricos encontrados na folha. A
+ clula sem valores numricos representada por valores
+ <literal>NaN</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>TextInd</term>
+ <listitem>
+ <para>uma matriz de ndices com o mesmo tamanho que
+ <literal>Value</literal>. Os ndices zeros indicam que no existem
+ strings na celula Excel correspondente. Um ndice positivo
+ <literal>i </literal> aponta para o string <literal>SST(i)</literal>
+ onde <literal>SST</literal> dado por <link linkend="xls_open">xls_open</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Descrio</title>
+ <para>Esta funo l uma folha do Excel, dada uma unidade lgica, em um
+ fluxo de dados do Excel e a posio do incio da folha neste fluxo de
+ dados. Ela retorna os dados numricos e os strings contidos nas clulas do
+ Excel.
+ </para>
+ <para>
+ A funo <link linkend="readxls">readxls</link> pode ser utilizada
+ para ler todo um arquivo Excel em uma funo utilizando apenas uma chamada
+ a funo.
+ </para>
+ <para>
+ <warning>AVISO: apenas arquivos Excel BIFF8 (ltima verso do Excel (2003)) so
+ manipulados.
+ </warning>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Exemplos</title>
+ <programlisting role="example"><![CDATA[
+//decodificando um arquivo ole, extraindo e abrindo um fluxo de dados do Excel
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+//lendo a primeira folha de dados
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+//fechando o fluxo de dados da planilha
+mclose(fd)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>Ver Tambm</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xls_open">xls_open</link>
+ </member>
+ <member>
+ <link linkend="readxls">readxls</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliografia</title>
+ <para>Esta funo baseada na descrio do OpenOffice sobre fluxo de
+ dados (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Funes Utilizadas</title>
+ <para>Esta funo utiliza o arquivo xls.c que pode ser encontrado em uma
+ verso-fonte do Scilab no diretrio directory
+ SCIDIR/modules/spreadsheet/src/c.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/spreadsheet/help/ru_RU/addchapter.sce b/modules/spreadsheet/help/ru_RU/addchapter.sce
new file mode 100755
index 000000000..800958c7a
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Электронная таблица",SCI+"/modules/spreadsheet/help/ru_RU",%T);
+
diff --git a/modules/spreadsheet/help/ru_RU/read_csv.xml b/modules/spreadsheet/help/ru_RU/read_csv.xml
new file mode 100755
index 000000000..921e4b61e
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/read_csv.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="read_csv" xml:lang="ru">
+
+ <refnamediv>
+
+ <refname>read_csv</refname>
+
+ <refpurpose>читает файл, содержащий значения, разделённые запятой (csv)</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Последовательность вызова</title>
+
+ <synopsis>M = read_csv(fname [,sep])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>Аргументы</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>fname</term>
+
+ <listitem>
+
+ <para>символьная строка. Имя файла и путь до него.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sep</term>
+
+ <listitem>
+
+ <para>
+
+ символьная строка. Используемый разделитель полей, значение по умолчанию
+
+ ",".
+
+ </para>
+
+ <para>
+
+ Можно использовать <literal>ascii(9)</literal> или <literal>"\t"</literal> для разделителя табуляцией.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>M</term>
+
+ <listitem>
+
+ <para>матрица строковых значений.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Описание</title>
+
+ <para>
+
+ Для указанного ascii-файла с разделёнными полями, например созданного
+
+ электронной таблицей, используя формат "Текст и запятая",
+
+ <literal>М = read_csv(fname)</literal> возвращает соответствующую Scilab-матрицу
+
+ строк <literal>M</literal>. Для того, чтобы выбрать иной разделитель, используйте
+
+ <literal>M = read_csv(fname,sep)</literal>.
+
+ </para>
+
+ <para>
+
+ <note>
+
+ Вы можете преобразовать часть или все элементы матрицы <literal>M</literal>
+
+ в числовое представление используя функцию <literal>evstr</literal>,
+
+ которая преобразует строковые значения в числовые.
+
+ </note>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Примеры</title>
+
+ <programlisting role="example"><![CDATA[
+ // создадим файл с какими-то данными, разделёнными табулятором
+ A = 1:50;
+ mputl(strcat(string(A),ascii(9)), TMPDIR + '/foo.csv');
+
+ // прочитаем csv-файл
+ B = read_csv(TMPDIR + '/foo.csv');
+
+ // представим в числовой вид значения B
+ C = evstr(B);
+
+ // сравним исходные данные и результат
+ and(A == C)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>Смотрите также</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="write_csv">write_csv</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="evstr">evstr</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
+
+
diff --git a/modules/spreadsheet/help/ru_RU/readxls.xml b/modules/spreadsheet/help/ru_RU/readxls.xml
new file mode 100755
index 000000000..2816494c6
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/readxls.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="readxls">
+
+ <refnamediv>
+
+ <refname>readxls</refname>
+
+ <refpurpose>читает Excel-файл</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Последовательность вызова</title>
+
+ <synopsis>sheets = readxls(file_path)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>Аргументы</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>file_path</term>
+
+ <listitem>
+
+ <para>символьная строка: путь к Excel-файлу.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sheets</term>
+
+ <listitem>
+
+ <para>
+
+ матричноориентированный список (<literal>mlist</literal>) типа
+
+ <literal>xls</literal>, с одним полем, названным <literal>sheets</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Описание</title>
+
+ <para>
+
+ Для указанного пути к Excel-файлу эта функция возвращает структуру данных
+
+ <literal>mlist</literal> типа <literal>xls</literal>, с одним полем,
+
+ названным <literal>sheets</literal>. Поле <literal>sheets</literal>
+
+ содержит список структур данных листов.
+
+ </para>
+
+ <para>
+
+ <literal>sheet=mlist(['xlssheet','name','text','value'],sheetname,Text,Value)</literal>, где
+
+ <literal>sheetname</literal> -- это символьная строка, содержащая имя листа,
+
+ <literal>Text</literal> -- это матрица строк, которая содержит строки ячеек, а
+
+ <literal>Value</literal> -- это матрица чисел, которая содержит значения ячеек.
+
+ </para>
+
+ <para>
+
+ <warning>
+
+ Обрабатываются только Excel-файлы BIFF8 (Excel-файлы последней версии (2003)).
+
+ </warning>
+
+ </para>
+
+
+
+ </refsection>
+
+ <refsection>
+
+ <title>Примеры</title>
+
+ <programlisting role="example"><![CDATA[
+Sheets = readxls('SCI/modules/spreadsheet/demos/xls/t1.xls')
+// некоторые основные операции с листами Sheets
+typeof(Sheets)
+s1=Sheets(1) //получим первый лист
+typeof(s1)
+s1.value //получим поле значения первого листа
+s1.text //получим поле текста первого листа
+s1(2,:) //получим вторую строку листа
+typeof(s1(2,:))
+
+disp(s1)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>Смотрите также</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="xls_open">xls_open</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="xls_read">xls_read</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Используемые функции</title>
+
+ <para>
+
+ Эта функция основана на функциях Scilab'а <literal>xls_open</literal>
+
+ и <literal>xls_read</literal>.
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
+
+
diff --git a/modules/spreadsheet/help/ru_RU/write_csv.xml b/modules/spreadsheet/help/ru_RU/write_csv.xml
new file mode 100755
index 000000000..a823b61ed
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/write_csv.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="write_csv" xml:lang="ru">
+
+ <refnamediv>
+
+ <refname>write_csv</refname>
+
+ <refpurpose>
+
+ записывает файл, содержащий значения, разделённые запятой (csv)
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Последовательность вызова</title>
+
+ <synopsis>write_csv(M, filename [,sep, dec])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>Аргументы</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>filename</term>
+
+ <listitem>
+
+ <para>символьная строка. Имя файла и путь до него</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>M</term>
+
+ <listitem>
+
+ <para>матрица строк</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sep</term>
+
+ <listitem>
+
+ <para>
+
+ знак разделения столбцов, по умолчанию это табуляция: <literal>ascii(9)</literal> или <literal>"\t"</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>dec</term>
+
+ <listitem>
+
+ <para>
+ десятичный знак <literal>'.'</literal> или <literal>','</literal>. По умолчанию: <literal>','</literal>
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Описание</title>
+
+ <para>
+
+ <literal>write_csv(M, filename)</literal> записывает матрицу <literal>M</literal>
+
+ в файл с именем <literal>filename</literal> в виде значений, разделённых табуляцией.
+
+ Входной аргумент <literal>filename</literal> является строкой.
+
+ </para>
+
+ <para>
+
+ Если файл с именем <literal>'filename'</literal> уже существует, то он будет
+
+ переписан.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Примеры</title>
+
+ <programlisting role="example"><![CDATA[
+ // сохраним матрицу в формате csv-файла
+ A = [1:10] * 0.1;
+ write_csv(A, TMPDIR + '/data.tsv');
+
+ // прочитаем как текст
+ mgetl(TMPDIR + '/data.tsv')
+
+ //значения, разделённые табуляцией
+ r = read_csv(TMPDIR + '/data.tsv', ascii(9));
+ r = strsubst(r, ',' , '.');
+ evstr(r)
+
+ A = [1:10] * 0.1;
+ write_csv(A', TMPDIR+'/foo.csv', ' ', '.');
+ mgetl(TMPDIR+'/foo.csv')
+
+ //значения, разделённые табуляцией
+ write_csv(A, TMPDIR + '/datas.tsv');
+
+ //значения, разделённые запятыми
+ write_csv(A, TMPDIR + '/data.csv', ';');
+
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>Смотрите также</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="read_csv">read_csv</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="evstr">evstr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="mgetl">mgetl</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="format">format</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
+
+
diff --git a/modules/spreadsheet/help/ru_RU/xls_open.xml b/modules/spreadsheet/help/ru_RU/xls_open.xml
new file mode 100755
index 000000000..4f3cbfe08
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/xls_open.xml
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="xls_open">
+
+ <refnamediv>
+
+ <refname>xls_open</refname>
+
+ <refpurpose>открывает Excel-файл для чтения</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Последовательность вызова</title>
+
+ <synopsis>[fd,SST,Sheetnames,Sheetpos] = xls_open(file_path)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>Аргументы</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>file_path</term>
+
+ <listitem>
+
+ <para>
+
+ символьная строка: путь до Excel-файла.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fd</term>
+
+ <listitem>
+
+ <para>число: логический блок на потоке Excel.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>SST</term>
+
+ <listitem>
+
+ <para>
+
+ вектор всех символьных строк, которые встретились на Excel-листах.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Sheetnames</term>
+
+ <listitem>
+
+ <para>
+
+ вектор строк: имена листов.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Sheetpos</term>
+
+ <listitem>
+
+ <para>
+
+ вектор чисел: положение начала листов в потоке
+
+ Excel.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Описание</title>
+
+ <para>
+
+ Эта функция сначала анализирует структуру данных ole2, связанную с
+
+ указанным файлом, для того, чтобы выделить поток Excel, который
+
+ включён в него. После этого, поток Excel сохраняется в директории
+
+ <literal>TMDIR</literal> и открывается. Логический блок
+
+ <literal>fd</literal> указывает на этот временный файл. Затем читается
+
+ первый лист в этом потоке для того, чтобы получить общую информацию,
+
+ такую, как количество листов, имена листов <literal>Sheetnames</literal>,
+
+ адреса листов в потоке <literal>Sheetpos</literal> и
+
+ <literal>SST</literal>, который содержит все строки, используемые в
+
+ следующих листах.
+
+ </para>
+
+ <para>
+
+ Данные <literal>fd</literal> и <literal>Sheetpos</literal> должны быть переданы
+
+ в <link linkend="xls_read">xls_read</link> для того, чтобы прочитать данные
+
+ листов.
+
+ </para>
+
+ <para>
+
+ Функция <link linkend="readxls">readxls</link> может быть использована для
+
+ чтения всего Excel-файла в одной функции за единственный вызов функции.
+
+ </para>
+
+ <para>
+
+ <warning>
+
+ Обрабатываются только Excel-файлы BIFF8 Excel (последняя версия Excel-файлов (2003)).
+
+ </warning>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Примеры</title>
+
+ <programlisting role="example"><![CDATA[
+//Декодируем ole-файл, выделим и откроем поток Excel
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+
+//Чтение первого листа данных
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+
+//закрываем поток электронной таблицы
+mclose(fd)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>Смотрите также</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="xls_read">xls_read</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="readxls">readxls</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Литература</title>
+
+ <para>
+
+ Эта функция основана на документации Microsoft по файлу ole2
+
+ (<ulink url="http://chicago.sourceforge.net/devel/docs/ole/">http://chicago.sourceforge.net/devel/docs/ole/</ulink>)
+
+ и на описании потока Excel из OpenOffice
+
+ (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Используемые функции</title>
+
+ <para>
+
+ Для выделения потока электронной таблицы из ole-файла используется
+
+ процедура ripole-0.1.4 (<ulink url="http://www.pldaniels.com/ripole">http://www.pldaniels.com/ripole</ulink>).
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
+
+
diff --git a/modules/spreadsheet/help/ru_RU/xls_read.xml b/modules/spreadsheet/help/ru_RU/xls_read.xml
new file mode 100755
index 000000000..aae25142b
--- /dev/null
+++ b/modules/spreadsheet/help/ru_RU/xls_read.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005 - INRIA - Pierrick MODE
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="xls_read">
+
+ <refnamediv>
+
+ <refname>xls_read</refname>
+
+ <refpurpose>читает листы в Excel-файле</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Последовательность вызова</title>
+
+ <synopsis>[Value,TextInd] = xls_read(fd,Sheetpos)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>Аргументы</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>fd</term>
+
+ <listitem>
+
+ <para>
+
+ число: логическая единица на потоке Excel, возвращённая функцией <link linkend="xls_open">xls_open</link>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Sheetpos</term>
+
+ <listitem>
+
+ <para>
+
+ число: положение начала листа в потоке Excel. Это положение является одним из тех,
+
+ которые были возвращены функцией <link linkend="xls_open">xls_open</link>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Value</term>
+
+ <listitem>
+
+ <para>
+
+ матрица чисел: числовые данные, найденные в листе. Ячейки без числовых
+
+ данных представляются в виде значения <literal>NaN</literal>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>TextInd</term>
+
+ <listitem>
+
+ <para>
+
+ матрица индексов того же размера, что и <literal>Value</literal>. Нулевой
+
+ индекс означает, что в соответствующей ячейке Excel нет строковых значений.
+
+ Положительный индекс <literal>i</literal> указывает на строковое значение
+
+ <literal>SST(i)</literal>, где <literal>SST</literal> предоставлено функцией
+
+ <link linkend="xls_open">xls_open</link>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Описание</title>
+
+ <para>
+
+ Эта функция читает листы Excel, указанные логическим блоком в потоке Excel,
+
+ и положение начала листа внутри этого потока. Она возвращает числовые и строковые
+
+ данные, содержащиеся в ячейках Excel.
+
+ </para>
+
+ <para>
+
+ Для чтения всего Excel-файла в одной функции одним-единственным вызовом можно
+
+ использовать Функцию <link linkend="readxls">readxls</link>.
+
+ </para>
+
+ <para>
+
+ <warning>
+
+ Обрабатываются только Excel-файлы BIFF8 Excel (последняя версия Excel-файлов (2003)).
+
+ </warning>
+
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Примеры</title>
+
+ <programlisting role="example"><![CDATA[
+//Декодирование ole-файла, выделение и открытие потока Excel
+[fd,SST,Sheetnames,Sheetpos] = xls_open('SCI/modules/spreadsheet/demos/xls/Test1.xls')
+
+//Чтение перового листа данных
+[Value,TextInd] = xls_read(fd,Sheetpos(1))
+
+//закрываем поток электронной таблицы
+mclose(fd)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>Смотрите также</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="xls_open">xls_open</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="readxls">readxls</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Литература</title>
+
+ <para>
+
+ Эта функция основана на описании потока Excel из OpenOffice
+
+ (<ulink url="http://sc.openoffice.org/spreadsheetfileformat.pdf">http://sc.openoffice.org/spreadsheetfileformat.pdf</ulink>).
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>Используемые функции</title>
+
+ <para>
+
+ Эта функция ислользует файл xls.c, который можно найти в
+
+ исходном коде Scilab в директории SCIDIR/modules/spreadsheet/src/c.
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
+
+
diff --git a/modules/spreadsheet/includes/dynlib_spreadsheet.h b/modules/spreadsheet/includes/dynlib_spreadsheet.h
new file mode 100755
index 000000000..0d5002c7a
--- /dev/null
+++ b/modules/spreadsheet/includes/dynlib_spreadsheet.h
@@ -0,0 +1,28 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) DIGITEO - 2009 - Allan CORNET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+*/
+
+/*--------------------------------------------------------------------------*/
+#ifndef __DYNLIB_SPREADSHEET_H__
+#define __DYNLIB_SPREADSHEET_H__
+
+#ifdef _MSC_VER
+#ifdef SPREADSHEET_EXPORTS
+#define SPREADSHEET_IMPEXP __declspec(dllexport)
+#else
+#define SPREADSHEET_IMPEXP __declspec(dllimport)
+#endif
+#else
+#define SPREADSHEET_IMPEXP
+#endif
+
+#endif /* __DYNLIB_SPREADSHEET_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/includes/gw_spreadsheet.h b/modules/spreadsheet/includes/gw_spreadsheet.h
new file mode 100755
index 000000000..b7a98d397
--- /dev/null
+++ b/modules/spreadsheet/includes/gw_spreadsheet.h
@@ -0,0 +1,31 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __GW_SPREADSHEET_H__
+#define __GW_SPREADSHEET_H__
+/*--------------------------------------------------------------------------*/
+#include "dynlib_spreadsheet.h"
+/*--------------------------------------------------------------------------*/
+SPREADSHEET_IMPEXP int gw_spreadsheet(void);
+/*--------------------------------------------------------------------------*/
+SPREADSHEET_IMPEXP int sci_xls_read(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_xls_open(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_csvDefault(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_csvRead(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_csvStringToDouble(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_csvTextScan(char *fname, unsigned long fname_len);
+SPREADSHEET_IMPEXP int sci_csvWrite(char *fname, unsigned long fname_len);
+
+/*--------------------------------------------------------------------------*/
+#endif /* __GW_SPREADSHEET_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/libscispreadsheet-algo.la b/modules/spreadsheet/libscispreadsheet-algo.la
new file mode 100755
index 000000000..27231ab46
--- /dev/null
+++ b/modules/spreadsheet/libscispreadsheet-algo.la
@@ -0,0 +1,41 @@
+# libscispreadsheet-algo.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libscispreadsheet-algo.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscispreadsheet-algo.
+current=
+age=
+revision=
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
diff --git a/modules/spreadsheet/libscispreadsheet.la b/modules/spreadsheet/libscispreadsheet.la
new file mode 100755
index 000000000..9a7da5623
--- /dev/null
+++ b/modules/spreadsheet/libscispreadsheet.la
@@ -0,0 +1,41 @@
+# libscispreadsheet.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libscispreadsheet.so.5'
+
+# Names of this library.
+library_names='libscispreadsheet.so.5.5.2 libscispreadsheet.so.5 libscispreadsheet.so'
+
+# The name of the static archive.
+old_library=''
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscispreadsheet.
+current=10
+age=5
+revision=2
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib/scilab'
diff --git a/modules/spreadsheet/license.txt b/modules/spreadsheet/license.txt
new file mode 100755
index 000000000..fb1791636
--- /dev/null
+++ b/modules/spreadsheet/license.txt
@@ -0,0 +1,76 @@
+Copyright:
+Copyright (c) 2008 - DIGITEO
+Copyright (c) 1989-2008 - INRIA
+
+License:
+This module must be used under the terms of the CeCILL.
+This module file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+
+Ripole:
+=======
+
+Files: src/c/ripole/*
+
+Copyright:
+2003, PLD
+
+License:
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+* Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer.
+
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+* Neither the name of the PLD nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+Various files:
+==============
+
+Some files are published under a double license GPL V3 / CeCILL.
+
+Files: sci_gateway/cpp/gw_csv_helpers.cpp
+sci_gateway/cpp/sci_csvStringToDouble.cpp
+sci_gateway/cpp/gw_csv_helpers.h
+sci_gateway/cpp/sci_csvWrite.cpp
+sci_gateway/cpp/sci_csvTextScan.cpp
+sci_gateway/cpp/gw_csv_tools.h
+sci_gateway/cpp/sci_csvRead.cpp
+sci_gateway/cpp/sci_csvDefault.cpp
+sci_gateway/cpp/sci_csvIsnum.cpp
+src/cpp/stringToComplex.h
+src/cpp/stringToComplex.c
+src/cpp/stringToDouble.c
+src/cpp/stringToDouble.h
+
+
+Copyright: Allan Cornet - 2012
+
+License: GPL V3
diff --git a/modules/spreadsheet/locales/ca_ES.po b/modules/spreadsheet/locales/ca_ES.po
new file mode 100755
index 000000000..a1324baca
--- /dev/null
+++ b/modules/spreadsheet/locales/ca_ES.po
@@ -0,0 +1,420 @@
+# Catalan translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-04-19 17:54+0000\n"
+"Last-Translator: Marc Coll Carrillo <Unknown>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: ca\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té un valor incorrecte: Ha de ser '%s' or "
+"'%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "El fitxer %s no existeix.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: El %s no és un fitxer ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: No s'ha pogut obrir el fitxer %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: No hi ha cap flux de dades xls en el fitxer ole2 %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: No és un fitxer ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: El fitxer no té directori de fulles.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: No hi ha més memòria.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: El fitxer és incorrecte.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Només es pot tractar el format de fitxer BIFF8.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un "
+"escalar.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr "%s: No s'ha pogut llegir les dades, pot ser un fitxer xls invàlid.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Final de fitxer.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set_logfile: Error - No s'ha pogut obrir el fitxer de traces '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: Error - No s'ha pogut obrir el fitxer de traces '%s' "
+"(%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Predeterminat: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: S'ha definit el nivell de traces a %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:Error: El bloc de la memòria intermèdia està nul"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block:ERROR: No s'ha pogut assignar %d bytes per al bloc OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:ERROR: Error de cerca (block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d: S'ha llegit una incoherència de bytes. S'han demanat %d, i s'han "
+"obtingut %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:Error: El fitxer OLE està tancat\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:Error: No s'ha pogut assignar %d bytes\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:Error: No s'ha pogut carregar el bloc, import sector = "
+"0x%x, fat position = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load_FAT:Error: S'ha excedit el límit de la memòria FAT %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:Error: La petició de sectors era negativa (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:Error: No s'ha pogut assignar prou memòria per al "
+"miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain:Error: La cadena de càrrega ha anat més enllà del límit "
+"de memòria"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:Error: No s'ha pogut trobar el fitxer '%s' per a obrir-"
+"lo (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d:OLE_open_file:Error:No s'ha pogut obrir el fitxer %s per a llegir-lo "
+"(%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:Error: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:Error: No s'ha pogut composar el nom sencer del "
+"fitxer a partir de '%s' i '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:Error: No s'ha pogut obrir el fitxer %s per a "
+"escriure'l (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:Avís: Només s'ha escrit %d de %d bytes al fitxer %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Error: No s'ha pogut composar el nom de fitxer a "
+"partir de '%s' i '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Avís: Només s'ha escrit %d de %d bytes al fitxer "
+"%s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Error: No s'ha pogut obrir el fitxer %s per a "
+"obrir-lo (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Addició %s:%s:%s size = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Cridant a l'informador per al nom "
+"de fitxer"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "No s'ha pogut decodificar el flux de dades amb l'element '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:Error: No s'ha pogut assignar %d bytes de memòria per a "
+"realitzar el reemplaçament"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: La memòria assignada s'ha acabat quan s'estava "
+"reemplaçant '%s' per '%s'"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "S'està decodificant el nom de fitxer=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "El ripOLE necessita un fitxer d'entrada per a decodificar.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: La decodificació de %s ha acabat en error %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "El mòdul de fulla de càlcul del Scilab no està instal·lat.\n"
+
+msgid "Spreadsheet"
+msgstr "Full de càlcul"
+
+msgid "Read a xls file"
+msgstr "Llegeix un fitxer xls"
diff --git a/modules/spreadsheet/locales/cs_CZ.po b/modules/spreadsheet/locales/cs_CZ.po
new file mode 100755
index 000000000..47aa374ca
--- /dev/null
+++ b/modules/spreadsheet/locales/cs_CZ.po
@@ -0,0 +1,427 @@
+# Czech translation for scilab
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-03-21 13:44+0000\n"
+"Last-Translator: Zbyněk Schwarz <Unknown>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr "%s: Špatný typ vstupního argumentu #%d: Očekáván řetězec.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr "%s: Špatná velikost vstupního argumentu #%d: Očekáván řetězec.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Chyba při přidělování paměti.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáváno číslo s dvojitou "
+"přesností.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáváno číslo s dvojitou "
+"přesností.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr "%s: Špatný typ vstupního argumentu #%d: Očekáván boolean.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr "%s: Špatná velikost vstupního argumentu #%d: Byl očekáván boolean.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekávána matice čísel s dvojitou "
+"přesností.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekávána matice celých čísel s "
+"dvojitou přesností.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: očekáváno '%s', '%s', '%s', "
+"'%s', '%s' nebo '%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekávána hodnota s dvojitou "
+"přesností (%d až %d).\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: očekáváno '%s', '%s', '%s', "
+"'%s', '%s', '%s', '%s' nebo '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekávány čtyři položky.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáván vektor sloupce nebo "
+"řádku.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr "%s: Špatná hodnota pro vstupní argument #%d: Nejednotný rozsah.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s: Špatná velikost vstupního argumentu #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekáván řetězec '%s' nebo "
+"'%s'.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s: Špatná hodnota vstupního argumentu #%d.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr "%s: oddělovač a desetinné číslo musí mít různé hodnoty.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr "%s: Levé indexy rozsahu řádku a/nebo sloupce mimo rozsah.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s: nelze převést data.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s: %s neexistuje.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s: nelze otevřít soubor %s.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr "%s: nelze číst soubor %s: Chyba ve struktuře sloupce\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s: nelze přečíst soubor %s.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáván řetězec vektoru.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr "%s: nelze přečíst text: Chyba ve struktuře sloupce\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s: nelze přečíst text.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáváno pole řetězeců 1 x n "
+"nebo m x 1.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekáváno číslo s dvojitou "
+"přesností.\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s: %s není podporovaný formát.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekáváno \"%s\", nebo \"%s\".\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekávána reálná matice nebo matice "
+"řetězců.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s: chyba.\n"
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Soubor %s neexistuje.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: Soubor %s není soubor ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: Nelze otevřít soubor %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: V souboru ole2 %s není žádný proud xls.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: Není soubor ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s Soubor nemá žádný adresář Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: Není více paměti.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Neplatný, nebo poškozený soubor.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Obsluhován je pouze formát souboru BIFF8.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s: Špatný typ vstupního argumentu #%d: Očekáván skalár.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Nelze přečíst očekávaná data, pravděpodobně neplatný soubor xls.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Konec souboru.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+"%s: Ve sloupcích nalezena nesrovnalost. Na řádku %d nalezeno %d sloupců, "
+"zatímco předchozí obsahoval %d.\n"
+
+msgid "Warning"
+msgstr "Varování"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile: CHYBA - Nelze otevřít soubor záznamu '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr "LOGGER_set_logfile: CHYBA - Nelze otevřít soubor záznamu '%s' (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Výchozí: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Úroveň ladění nastavena na %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:CHYBA: Vyrovnávací paměť bloku je PRÁZDNÁ"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr "%s:%d:OLE_get_block:CHYBA: Nelze přidělit %d bajtů pro blok OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:CHYBA: Hledání chyby (blok=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:Neshoda ve čtených bajtech. Požadováno %d, získáno %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:CHYBA: Soubor OLE je zavřený\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:CHYBA: Nelze přidělit %d bajtů\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:CHYBA: Nelze načíst blok, sektor importu = 0x%x, pozice "
+"fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load_FAT:CHYBA: Přesáhnut hraniční limit paměti FAT %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:CHYBA: požadavek na sektor byl záporný (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:CHYBA: Pro miniChain nelze přidělit dostatek paměti"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr "%s:%d:OLE_load_FAT:CHYBA: Řetěz načtení přešel hranice paměti"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr "%s:%d:OLE_open_file:CHYBA: Nelze nalézt soubor '%s' k otevření (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file:CHYBA: Nelze otevřít %s pro čtení (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:CHYBA: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:CHYBA: Nelze složit úplný řetězec jména souboru z "
+"'%s' a '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr "%s:%d:OLE_store_stream:CHYBA: Nelze otevřít %s pro zápis (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:VAROVÁNÍ: Zapsáno pouze %d z %d bajtů do souboru %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:CHYBA: Nelze vytvořit řetězec jména souboru z "
+"'%s' a '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:VAROVÁNÍ: Zapsáno pouze %d z %d bajtu do souboru "
+"%s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr "%s:%d:OLEUNWRAP_save_stream:CHYBA: Nelze otevřít %s pro zápis (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:LADĚNÍ: Příloha %s:%s:%s velikost = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:LADĚNÍ: Volání oznamovatele jména souboru"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Nelze dekódovat proud s řetězcem prvku '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:CHYBA: Nelze přidělit %d bajtů paměti k provedení "
+"operace nahrazení"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: Při nahrazování '%s' s '%s' došla přidělená "
+"paměť"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Dekódování jména souboru=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE vyžaduje vstupní soubor k dekódování.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: dekódování %s mělo za následek chybu %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Modul tabulky Scilabu není nainstalován.\n"
+
+msgid "Spreadsheet"
+msgstr "Tabulka"
+
+msgid "Read a xls file"
+msgstr "Přečíst soubor xls"
diff --git a/modules/spreadsheet/locales/de_DE.po b/modules/spreadsheet/locales/de_DE.po
new file mode 100755
index 000000000..d23fb294b
--- /dev/null
+++ b/modules/spreadsheet/locales/de_DE.po
@@ -0,0 +1,413 @@
+# German translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-01-24 09:11+0000\n"
+"Last-Translator: mrx5682 <Unknown>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: de\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: '%s' oder '%s' erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Die Datei %s existiert nicht.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: Datei %s ist keine loe2 Datei.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: kann Datei nicht öffnen %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: es gibt kein xls Datenstrom in der Datei %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: keine ole2 Datei.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: die Datei hat kein Arbeitsbuch Verzeichnis.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: kein weiterer Speicher verfügbar\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: inkorrekte oder defekte Datei.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: nur BIFF8 Dateiformat wird unterstützt.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s: falsche Typ für Eingangsargument #%d: Skalar erwartet.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Fehlschlag beim Lesen der erwarteten Daten, könnte eine ungültige xls "
+"Datei sein.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Ende der Datei.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set_logfile: ERROR - kann Protokolldatei '%s' (%s) nicht öffnen"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: ERROR - kann Protokolldatei '%s' (%s) nicht öffnen\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "Protokolldienst - Voreinstellung: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Fehlersuchstufe auf %d gesetzt."
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block: Fehler: Block Buffer ist Null."
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block: Fehler: kann keine %d Bytes für OLE Block vorbelegen."
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:Fehler:Suchfehler (block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d: Unterschied beim Lesen von Bytes. Nachgefragte %d, erhalten %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s: %d:OLE_get_block: Fehler: OLE Datei ist geschlossen\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:Fehler:kann %d Bytes nicht vorbelegen\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:Fehler: kann Block nicht laden, importiere Sektor=0x%x, "
+"Fat Position = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:ERROR:FAT Speicher Grenzwert überschritten %p=>%p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:ERROR:Sektoranfrage war negativ (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:ERROR: kann nicht genug Speicher für miniChain "
+"vorbelegen"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain:ERROR: Kettenladen hat die Speichergrenze überschritten"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:ERROR: Kann Datei '%s' für das Öffnen (%s) nicht finden"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file:ERROR:Kann %s für Lesen (%s) nicht öffnen\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:ERROR: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:ERROR:kann vollen Dateinamen aus '%s' und '%s' nicht "
+"zusammensetzen"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ERROR: kann %s für das Schreiben (%s)nicht öffnen."
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:WARNING:nur %d von %d Bytes in die Datei %s "
+"geschrieben"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Fehler: kann Zeichenkette des Dateinamens aus "
+"'%s' und '%s' nicht erzeugen"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Warnung:nur %d von %d Bytes nach Datei %s "
+"geschrieben\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:Fehler:kann %s für das Schreiben (%s) nicht "
+"öffnen\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:Fehlersuche: Anhang %s:%s:%s Größe = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:Fehlersuche: Aufruf des Nachrichtendiensts "
+"für den Dateinamen"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr ""
+"Kann den Datenstrom mit Zeichenketten-Element '%s' nicht dekodieren\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s: %d: PLD_strreplace:Fehler: kann %d Bytes des Speichers vorbelegen, um "
+"eine Ersetzungsoperation durchzuführen."
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: belegter Speicher wurde nach des Ersetzens "
+"'%s' mit '%s' voll."
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Dekodiere Dateiname=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE benötigt eine Eingabedatei für das Dekodieren.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: Dekodieren von %s ergab einen Fehler %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Scilab Tabellen Modul ist nicht installiert.\n"
+
+msgid "Spreadsheet"
+msgstr "Arbeitsblatt"
+
+msgid "Read a xls file"
+msgstr "Lese eine xls Datei"
diff --git a/modules/spreadsheet/locales/es_ES.po b/modules/spreadsheet/locales/es_ES.po
new file mode 100755
index 000000000..d5af29cb5
--- /dev/null
+++ b/modules/spreadsheet/locales/es_ES.po
@@ -0,0 +1,412 @@
+# Spanish translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-08-11 22:34+0000\n"
+"Last-Translator: Jose Gutierrez <joseb.gutierrez@gmail.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: es\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Valor incorrecto del argumento de entrada #%d: Se esperaba '%s' o '%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "El archivo %s no existe.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: El archivo %s no es ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: No se puede abrir el archivo %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: No hay un flujo xls en el archivo ole2 %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: No es un archivo ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: El archivo no tiene directorio de Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: No hay más memoria.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Archivo incorrecto o corrupto.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Solo el formato de archivo BIFF8 es manejado.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un escalar.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Falló la lectura de los datos esperados, puede ser un archivo xls "
+"inválido.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Fin de archivo.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile: ERROR - No se puede abrir logfile '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr "LOGGER_set_logfile: ERROR - No se puede abrir logfile '%s' (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Nivel de depuración %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:ERROR: El buffer de bloque es NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block:ERROR: No se pueden asignar %d bytes para el bloque OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:ERROR: Falló la búsqueda (bloque=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d:Inconsistencia en los bytes leídos. Se solicitó %d, se obtuvo %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:ERROR: El archivo OLE está cerrado\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:ERROR: Imposible asignar %d bytes\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:ERROR: Incapaz de cargar bloque, sector importado = 0x%x, "
+"posición fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load_FAT:ERROR: Los límites de memoria de la FAT exceden %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:ERROR: Petición de sector fue negativa (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:ERROR: Falló la asignación de suficiente memoria "
+"para miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain:ERROR: La cadena de carga pasó el límite de memoria"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:ERROR: No se puede localizar el archivo '%s' para "
+"abrirlo (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file:ERROR: No se puede abrir %s para lectura (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:ERROR: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:ERROR: No se puede componer un nombre de archivo "
+"completo desde '%s' y '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ERROR: No se puede abrir %s para escritura (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:WARNING: Solo se escribieron %d de %d bytes en el "
+"archivo %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Incapaz de crear nombre de archivo desde "
+"la cadena '%s' y '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Solo se escribieron %d de %d bytes en "
+"el archivo %s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: incapaz de abrir%s para escritura (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Adjunto %s:%s:%s tamaño = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEPURACIÓN: Llamando reporte para el "
+"nombre de archivo"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Incapaz de decodificar flujo con el elemento de la cadena '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ERROR: No se pueden asignar %d bytes de memoria para "
+"ejecutar la operación de reemplazo"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: Se quedo sin memoria asignada mientras se "
+"reemplazaba '%s' con '%s'"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Decodificando archivo=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE requiere un archivo de entrada para decodificar.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: la decodificación de %s terminó en un error %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "El módulo de hoja de cálculos de Scilab no está instalado.\n"
+
+msgid "Spreadsheet"
+msgstr "hoja de cálculo"
+
+msgid "Read a xls file"
+msgstr "Leer archivo xls"
diff --git a/modules/spreadsheet/locales/fr_FR.po b/modules/spreadsheet/locales/fr_FR.po
new file mode 100755
index 000000000..023e648c7
--- /dev/null
+++ b/modules/spreadsheet/locales/fr_FR.po
@@ -0,0 +1,455 @@
+# French translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-03-22 14:41+0000\n"
+"Last-Translator: Julie PAUL <Unknown>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: fr\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une chaîne de caractères "
+"attendue.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Une chaîne de "
+"caractères attendue.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s : Erreur d'allocation mémoire.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr "%s : Type erroné de l'argument d'entrée n°%d : Un double attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un double attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr "%s : Type erroné de l'argument d'entrée n°%d : Un booléen attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un booléen attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une matrice de doubles "
+"attendue.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Une matrice de doubles "
+"avec des valeurs entières attendue.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : '%s', '%s', '%s', '%s', "
+"'%s' ou '%s' attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Un double (de %d à %d) "
+"attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : '%s', '%s', '%s' , '%s', "
+"'%s', '%s', '%s' ou '%s' attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Quatre entrées "
+"attendues.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un vecteur colonne ou "
+"ligne attendu.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Intervalle inconsistant.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s : Dimension erronée de l'argument d'entrée n°%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : La chaîne de caractères "
+"'%s' ou '%s' attendue.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s : Valeur erronée de l'argument d'entrée n°%d.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+"%s : Le séparateur et la décimale doivent avoir des valeurs différentes.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+"%s : Les indices des lignes et/ou de la colonne de gauche sont en dehors des "
+"bornes.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s : Impossible de convertir les données.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s : %s n'existe pas.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s : Impossible d'ouvrir le fichier %s.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+"%s : Impossible de lire le fichier %s : Erreur dans la structure de la "
+"colonne.\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s : Impossible de lire le fichier %s.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+"%s : Mauvaise dimension pour l'argument d'entrée #%d : Vecteur de chaîne de "
+"caractères attendu.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+"%s : Impossible de lire le texte : Erreur dans la structure de la colonne.\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s : Impossible de lire le texte.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un tableau de chaîne de "
+"caractères de taille 1-par-n ou m-par-1 attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Un double (de valeur 1 à "
+"17) attendu.\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s : Format %s non supporté.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : '%s' ou '%s' attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une matrice de chaîne de "
+"caractères ou de réels attendue.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s : Erreur.\n"
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Le fichier %s n'existe pas.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s : Le fichier %s n'est pas un fichier ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s : Impossible d'ouvrir le fichier %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s : Il n'y a pas de flux xls dans le fichier ole2 %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s : Ce n'est pas un fichier ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s : Le fichier n'a pas de répertoire Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s : Plus de mémoire disponible.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s : Fichier incorrect ou corrompu.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s : Seul le format de fichier BIFF8 est pris en charge.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un scalaire attendu.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s : Échec de lecture des données attendues, le fichier xls est peut être "
+"invalide.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s : Fin de fichier.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+"%s : Une incohérence a été trouvée dans les colonnes. À la ligne %d, %d "
+"colonnes ont été trouvées, alors que la précédente en avait %d.\n"
+
+msgid "Warning"
+msgstr "Attention"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set_logfile: ERREUR - Impossible d'ouvrir le fichier de log '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: ERREUR - Impossible d'ouvrir le fichier de log '%s' "
+"(%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE : %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Le niveau de débogage est réglé sur %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:ERROR : Le bloc buffer est NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block:ERROR: Impossible d'allouer %d bytes pour le bloc OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:ERROR: Échec de Seek (block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d: Décalage dans les bytes lus. Requis %d, obtenus %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:ERREUR: Le fichier OLE est fermé\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:ERREUR: Impossible d'allouer %d bytes\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:ERREUR: Impossible de charger le bloc, secteur importé = "
+"0x%x, position fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:ERROR: La limite de mémoire FAT dépassée %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:ERREUR: Le secteur demandé était négatif (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:ERREUR: Impossible d'allouer suffisamment de mémoire "
+"pour miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain:ERREUR: La chaîne de chargement a dépassé la limite de "
+"mémoire"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:ERROR: Impossible de localiser le fichier '%s' pour "
+"ouvrir (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file:ERREUR: Impossible d'ouvrir %s en lecture (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:ERREUR: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:ERREUR: Impossible de recomposer le nom de fichier "
+"complet à partir de '%s' et '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ERREUR: Impossible d'ouvrir %s en écriture (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream: ATTENTION: Seuls %d de %d bytes ont été écrits dans "
+"le fichier %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERREUR: Impossible de créer la chaîne de "
+"caractères du nom de fichier à partir de '%s' et '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream: ATTENTION: Seuls %d de %d bytes ont été écrits "
+"dans le fichier %s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERREUR: Impossible d'ouvrir %s en écriture (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachement %s:%s:%s dimension = "
+"%d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Contactez l'auteur du bug pour le "
+"nom du fichier"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr ""
+"Impossible de décoder le flux avec la chaîne de caractères élément '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ERREUR: Impossible d'allouer %d bytes de mémoire pour "
+"effectuer l'opération de remplacement"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: La mémoire allouée a été épuisée pendant le "
+"remplacement de '%s' par '%s'"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Décoder le nom de fichier=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE nécessite un fichier à décoder en entrée.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE : Le décodage de %s s'est terminé par une erreur %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Le module spreadsheet de Scilab n'est pas installé.\n"
+
+msgid "Spreadsheet"
+msgstr "Feuille de calcul"
+
+msgid "Read a xls file"
+msgstr "Lire un fichier xls"
diff --git a/modules/spreadsheet/locales/it_IT.po b/modules/spreadsheet/locales/it_IT.po
new file mode 100755
index 000000000..2ab47f5f6
--- /dev/null
+++ b/modules/spreadsheet/locales/it_IT.po
@@ -0,0 +1,465 @@
+# Italian translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2015-02-14 22:05+0000\n"
+"Last-Translator: Carml <mighty.carml@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: it\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una "
+"stringa.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era attesa una "
+"stringa.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Errore di allocazione della memoria.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un double.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"double.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un valore "
+"booleano.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"valore booleano.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice "
+"di double.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice "
+"di double con valori interi.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso '%s', '%s', "
+"'%s', '%s', '%s' o '%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso un double "
+"(valore fra %d e %d).\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s: L' argomento in ingresso #%d ha un valore sbagliato: era atteso '%s', "
+"'%s', '%s' , '%s', '%s', '%s', '%s' o '%s' .\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: erano attese "
+"quattro voci.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"vettore colonna o un vettore riga.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: intervallo non "
+"consistente.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s: L'argomento in ingresso #%d ha una dimensione sbagliata.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era attesa una "
+"stringa '%s' o '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s: L'argomento in ingresso #%d ha un valore sbagliato.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr "%s: separatore e decimale devono avere valori differenti.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+"%s: Riga dell'intervallo o/e indice sinistro della colonna fuori dai "
+"limiti.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s: impossibile convertire i dati.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s: %s non esiste.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s: impossibile aprire il file %s.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+"%s: impossibile aprire il file %s: errore nella struttura della colonna\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s: impossibile leggere il file %s.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"vettore di tipo stringa.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+"%s: impossibile leggere il testo: errore nella struttura della colonna\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s: impossibile leggere il testo.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"vettore di stringhe 1-per-n o m-per-1.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso un double "
+"(valore fra 1 e 17).\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s: Il formato %s non è supportato.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso '%s' o "
+"'%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice "
+"di stringhe o una di numeri reali.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s: errore.\n"
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Il file %s non esiste.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: Il file %s non è un file ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: Non è possibile aprire il file %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: Non c'è alcun flusso xls nel file ole2 %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: Non è un file ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: Il file non ha una directory Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: Memoria esaurita.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Il file non è corretto o è danneggiato.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: È gestito solo il formato di file BIFF8.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso uno "
+"scalare.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Non è stato possibile leggere i dati attesi, forse non è un file xls "
+"valido.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Fine del file.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+"%s: Trovata un'inconsistenza nelle colonne. Alla riga %d vi sono %d colonne "
+"mentre nella precedente %d.\n"
+
+msgid "Warning"
+msgstr "Attenzione"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_ser_logfile: ERRORE - Non è possibile aprire il logfile '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_ser_logfile: ERRORE - Non è possibile aprire il logfile '%s' (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d: OLE_set_debug: il livello di debug è impostato a %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d: OLE_get_block:Errore: Il buffer del blocco è NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d: OLE_get_block:ERROR: non è possibile allocare %d byte per il blocco "
+"OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d: OLE_get_block:ERROR: fallimento nella ricerca (block=%d%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d: Discordanza nella lettura dei byte. Richiesto %d, ottenuto %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d: OLE_get_block:ERROR: il file OLE è chiuso\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d: OLE_load_FAT:ERROR: impossibile allocare %d byte\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d: OLE_load_FAT:ERRORE: impossibile caricare il blocco, settore di "
+"importazione = 0x%x,posizione fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d: OLE_load_FAT:ERROR: oltrepassato il limite della memoria di confine "
+"FAT %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d: OLE_load_FAT:ERROR: la richiesta del settore è negativa (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d: OLE_get_miniblock:ERROR: impossibile allocare memoria sufficiente per "
+"miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d: OLE_load_chain:ERROR: Load-chain è andata oltre il limite della "
+"memoria"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d: OLE_open_file:ERROR: non è possibile trovare il file '%s' per "
+"l'apertura (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d: OLE_open_file:ERROR: non è possibile trovare %s per la lettura (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d: OLE_open_directory:ERROR: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d: OLE_store_stream:ERROR: non è possibile comporre l'intera stringa "
+"nomefile da '%s' e '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d: OLE_store_stream:ERROR: non è possibile aprire %s per la scrittura "
+"(%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d: OLE_store_stream:ATTENZIONE: ha scritto solo %d di %d byte nel file %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d: OLEUNWRAP_save_stream:ERROR: non è possibile creare la stringa "
+"nomefile da '%s' e '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d: OLEUNWRAP_save_stream:ERROR: ha scritto solo %d di %d byte nel file "
+"%s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d: OLEUNWRAP_save_stream:ERROR: non è possibile aprire %s per la "
+"scrittura (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d: OLEUNWRAP_decode_attachment:DEBUG: allegato %s%s%s dimensione = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d: OLEUNWRAP_decode_attachment:DEBUG: chiamata di reporter in corso per "
+"il nome del file"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr ""
+"Non è possibile decodificare il flusso con un elemento della stringa '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ERROR: non è possibile allocare %d byte di memoria per "
+"eseguire l'operazione di sostituzione"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: la memoria allocata è finita durante la "
+"sostituzione di '%s' con '%s'"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Decodifica in corso nomefile=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE richiede un file in ingresso da decodificare.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: la decodifica di %s ha portato all'errore %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Il modulo speadsheet di Scilab non è installato.\n"
+
+msgid "Spreadsheet"
+msgstr "Foglio di calcolo"
+
+msgid "Read a xls file"
+msgstr "Leggi un file xls"
diff --git a/modules/spreadsheet/locales/ja_JP.po b/modules/spreadsheet/locales/ja_JP.po
new file mode 100755
index 000000000..764a65c02
--- /dev/null
+++ b/modules/spreadsheet/locales/ja_JP.po
@@ -0,0 +1,443 @@
+# Japanese translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-03-22 15:05+0000\n"
+"Last-Translator: Rui Hirokawa <Unknown>\n"
+"Language-Team: Japanese <z-saito@guitar.ocn.ne.jp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"X-Poedit-Country: Japan\n"
+"Language: ja\n"
+"X-Poedit-Language: Japanese\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 文字列を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 文字列を指定してください.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: メモリ割当エラー.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: doubleを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: doubleを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 論理値を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 論理値を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: doubleの行列を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 整数の値を有するdoubleの行列を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s: 入力引数 #%d の値が間違っています: '%s', '%s', '%s', '%s', '%s' または '%s' を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: double (値 %d から %d) を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s: 入力引数 #%d の値が間違っています: '%s', '%s', '%s' , '%s', '%s', '%s', '%s' または '%s' "
+"を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 4つのエントリを指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 列または行ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 範囲が一致しません.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 文字列'%s' または '%s' を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr "%s: セパレータと小数点は異なる値とする必要があります.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr "%s: 行または列添字が範囲外です.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s: データを変換できません.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s: %s は存在しません.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s: ファイル %s をオープンできません.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr "%s: ファイル %s を読み込めません: 列構造体にエラーがあります\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s: ファイル %s を読み込めません.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 文字列ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr "%s: テキストを読み込めません: 列構造体にエラーがあります\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s: テキストを読み込めません.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 1行n列またはm行1列の文字列配列を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: double (値は 1 から 17) を指定してください.\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s: サポートされない形式 %s.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: '%s' または '%s' を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 文字列行列または実数行列を指定してください.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s: エラー.\n"
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 81
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "ファイル %s は存在しません。\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: ファイル %s は OLE2ファイルではありません.\n"
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 93
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: ファイル %s を開けません。\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: OLE2ファイル %s にxlsストリームがありません.\n"
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 124
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: OLE2 ファイルではありません。\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: このファイルにはワークブックディレクトリがありません.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: メモリ不足です.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: 無効または破損したファイルです.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: 処理できるのは,BIFF8ファイル形式のみです.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: スカラーを指定してください.\n"
+
+#
+# File: sci_gateway/c/sci_xls_read.c, line: 66
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr "%s: 予想したデータを読み込めません、無効なxlsファイルかもしれません。\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: ファイルの終端に達しました.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr "%s: 列内に不整合があります. %d行目は %d 列ですが, その前の行は %d 列です.\n"
+
+msgid "Warning"
+msgstr "警告"
+
+#
+# File: src/c/ripole/logger.c, line: 117
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile: エラー - ログファイル '%s' (%s) を開けません"
+
+#
+# File: src/c/ripole/logger.c, line: 119
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr "LOGGER_set_logfile: エラー - ログファイル '%s' (%s) を開けません\n"
+
+#
+# File: src/c/ripole/logger.c, line: 342
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#
+# File: src/c/ripole/ole.c, line: 101
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#
+# File: src/c/ripole/ole.c, line: 251
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: デバックレベルを %d に設定"
+
+#
+# File: src/c/ripole/ole.c, line: 333
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:エラー: ブロックバッファはNULLです"
+
+#
+# File: src/c/ripole/ole.c, line: 347
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr "%s:%d:OLE_get_block:エラー: OLEブロックで、%d バイトの割り当てができません"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:エラー:シークに失敗しました(ブロック =%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:読み込んだバイト数が一致しません. %d バイトを要求しましたが, %d バイトが読み込まれました.\n"
+
+#
+# File: src/c/ripole/ole.c, line: 388
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:エラー: OLEファイルは閉じられました。\n"
+
+#
+# File: src/c/ripole/ole.c, line: 978
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:エラー: %d バイトを割り当てることが出来ません。\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr "%s:%d:OLE_load_FAT:エラー: ブロックをロードできません、 読み込みセクタ = 0x%x, FAT位置 = 0x%x"
+
+#
+# File: src/c/ripole/ole.c, line: 1048
+# File: src/c/ripole/ole.c, line: 1055
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:エラー: FATメモリの限界境界を越えました %p>=%p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:エラー: 要求セクタが負(%d)でした"
+
+#
+# File: src/c/ripole/ole.c, line: 1314
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr "%s:%d:OLE_get_miniblock:エラー: miniChainのためのメモリを十分に割り当てることができませんでした"
+
+#
+# File: src/c/ripole/ole.c, line: 1392
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr "%s:%d:OLE_load_chain:エラー: Load-chainはメモリ境界を越えました"
+
+#
+# File: src/c/ripole/ole.c, line: 1435
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr "%1$s:%2$d:OLE_open_file:エラー: 開いた(%4$s) のファイル '%3$s' を割り当てることができません"
+
+#
+# File: src/c/ripole/ole.c, line: 1450
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%1$s:%2$d:OLE_open_file:エラー: 読み込み(%4$s)の %3$s を開けません\n"
+
+#
+# File: src/c/ripole/ole.c, line: 1492
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:エラー: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr "%s:%d:OLE_store_stream:エラー: ’%s’と’%s’ から完全なファイル名を構築できません"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr "%1$s:%2$d:OLE_store_stream:エラー: 書き込み用(%4$s) に %3$s をオープンできません"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%1$s:%2$d:OLE_store_stream:警告: ファイル %5$s に %4$d バイトのうち %3$d のみが書き込まれました."
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 156
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr "%s:%d:OLEUNWRAP_save_stream:エラー: '%s' と '%s' からファイル名文字を作成できません"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%1$s:%2$d:OLEUNWRAP_save_stream:警告: ファイル %5$s へ %4$d バイトのうち,%3$d "
+"のみが書き込まれました.\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr "%1$s:%2$d:OLEUNWRAP_save_stream:エラー: 書き込み用(%4$s)に %3$s をオープン出来ません.\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:デバッグ: 添付 %s:%s:%s サイズ=%d\n"
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 293
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:デバッグ: ファイル名のレポータの呼び出し"
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 334
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "要素文字列 '%s' ストリームを復号化できません。\n"
+
+#
+# File: src/c/ripole/pldstr.c, line: 500
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr "%s:%d:PLD_strreplace:エラー: 置換を行うためのメモリ %d バイトを割り当てることができません"
+
+#
+# File: src/c/ripole/pldstr.c, line: 582
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%1$s:%2$d:PLD_strreplace_general: '%4$s' で '%3$s' の置換の間に割り当てたメモリがなくなりました。"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "ファイル名=%s をデコード中"
+
+#
+# File: src/c/ripole/ripole.c, line: 285
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLEは、復号化するべき入力ファイルを必要とします。\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: %s のデコード時にエラー %d を発生しました.\n"
+
+#
+# File: src/nospreadsheet/nospreadsheet.c, line: 19
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Scilab スプレッドシート・モジュールはインストールされていません。\n"
+
+msgid "Spreadsheet"
+msgstr "表計算"
+
+msgid "Read a xls file"
+msgstr "xlsファイルを読み込む"
diff --git a/modules/spreadsheet/locales/pl_PL.po b/modules/spreadsheet/locales/pl_PL.po
new file mode 100755
index 000000000..ff87b9ee7
--- /dev/null
+++ b/modules/spreadsheet/locales/pl_PL.po
@@ -0,0 +1,431 @@
+# Polish translation for scilab
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2011-10-20 14:09+0000\n"
+"Last-Translator: Grzegorz Szostek <Unknown>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: pl\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Nieprawidłowa wartość argumentu wejściowego nr %d: oczekiwany '%s' lub "
+"'%s' .\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Plik %s nie istnieje.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: Plik %s nie jest plikiem ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: Nie można otworzyć pliku %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: W pliku ole2 nie ma ścieżki xls %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: Nie jest plikiem ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: Nie ma pliku w katalogu skoroszyt.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: Brak pamięci.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Nieprawidłowy lub uszkodzony plik.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Tylko format pliku BIFF8 jest obsługiwany.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: Nieprawidłowy typ argumentu wejściowego nr %d: oczekiwany skalar.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr "%s: Oczekiwany błędny odczyt danych, plik xls może być uszkodzony.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Koniec pliku.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set(ustaw)_logfile(plik log): ERROR(błąd) - Nie można otworzyć pliku "
+"log '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set(ustaw)_logfile(plik log): ERROR(błąd) - Nie można otworzyć pliku "
+"log '%s' (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Domyślnie: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "rozdzielenie OLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr ""
+"%s:%d:OLE_set(ustaw)_debug(analizę): Analiza ustawiona na poziomie %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr ""
+"%s:%d:OLE_get(posiada)_block(blok):ERROR(błąd): Blok buforu jest ZEREM"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get(posiada)_block(blok):ERROR(błąd): Nie można przydzielić %d "
+"bajtu dla bloku OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr ""
+"%s:%d:OLE_get(posiada)_block(blok):ERROR(błąd): Szukanie nie powiodło się "
+"(blok=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:Niezgodność w odczytanych bajtach . Posiadany wniosek %d, %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr ""
+"%s:%d:OLE_get(posiada)_block(blok):ERROR(błąd): Plik OLE jest zamknięty\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr ""
+"%s:%d:OLE_load(wczytuje)_FAT:ERROR(błąd): Nie można przydzielić bajtów %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load(wczytuje)_FAT:ERROR(błąd): Nie można wczytać bloku, sektora "
+"importu = 0x%x, fat pozycja = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load(wczytuje)_FAT:ERROR(błąd): FAT przekroczył granicę limitu "
+"pamięci %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr ""
+"%s:%d:OLE_load(wczytuje)_FAT:ERROR(błąd): wnioskowany sektor był negatywny "
+"(%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get(posiada)_miniblock(mały blok):ERROR(błąd): Nie udało się "
+"przydzielić wystarczającej ilości pamięci do miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load(wczytuje)_FAT:ERROR(błąd): Obciążenia sieci sięgają granicy "
+"pamięci"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open(otwierać)_file(plik):ERROR(błąd): Nie można odnaleźć pliku "
+"'%s' do otwarcia (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d:OLE_open(otwierać)_file(plik):ERROR(błąd):Nie można otworzyć %s do "
+"odczytu (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open(otwierać)_directory(katalog):ERROR(błąd): %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store(magazyn)_stream(ścieżkę):ERROR(błąd): Nie można skomponować "
+"pełnej nazwy pliku z ciągu znaków '%s' i '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store(magazyn)_stream(ścieżkę):ERROR(błąd): Nie można otworzyć %s "
+"do zapisu (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store(magazyn)_stream(ścieżkę):OSTRZEŻENIE: Tylko zapis %d z %d "
+"bajtów do pliku %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save(zapisz)_stream(ścieżkę):ERROR(błąd): Nie można utworzyć "
+"pliku z ciągu znaków '%s' i '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save(zapisz)_stream(ścieżkę):OSTRZEŻENIE: Tylko napisz %d z "
+"%d bajtów do pliku %s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save(zapisz)_stream(ścieżkę):ERROR(błąd): Nie można otworzyć "
+"%s do zapisu (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode(rozkoduj)_attachment(przypisanie):DEBUG (Analiza): "
+"Przypisany %s:%s:%s rozmiar = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG(Analiza): Przywołanie wydarzeń dla "
+"nazwy pliku"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Nie można rozkodować ścieżki z elementami ciągu znaków '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ERROR(błąd): Nie można przydzielić %d bajtów pamięci do "
+"wykonania operacji wymiany"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general(ogólnie): Przydzielona pamięć została "
+"wyprowadzona podczas zamiany '%s' z '%s'"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Dekodowanie pliku=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr ""
+"ripOLE (rozdzielenie OLE) wymaga pliku wejściowego do rozkodowania.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: dekodowanie %s zakończyło się błędem %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Moduł arkusza kalkulacyjnego Scilab nie zainstalowany.\n"
+
+msgid "Spreadsheet"
+msgstr ""
+
+msgid "Read a xls file"
+msgstr "Odczytaj plik xls"
diff --git a/modules/spreadsheet/locales/pt_BR.po b/modules/spreadsheet/locales/pt_BR.po
new file mode 100755
index 000000000..0c500eccd
--- /dev/null
+++ b/modules/spreadsheet/locales/pt_BR.po
@@ -0,0 +1,417 @@
+# Brazilian Portuguese translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-01-06 15:46+0000\n"
+"Last-Translator: RodolfoRG <rodolforg@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: pt_BR\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Valor incorreto para o argumento de entrada #%d: esperava-se '%s' ou "
+"'%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "O arquivo %s não existe.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: O arquivo %s não é um arquivo ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: Não foi possível abrir o arquivo %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: Não há fluxo xls no arquivo ole2 %s.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: Não é um arquivo ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: O arquivo não possui diretório Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: Memória esgotada.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Arquivo incorreto ou corrompido.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Apenas o formato de arquivo BIFF8 é tratado.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um escalar.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Falhou ao ler os dados esperados: pode ser um arquivo xls inválido.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Fim do arquivo.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set_logfile: ERRO - Não é posível abrir o arquivo de registros '%s' "
+"(%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: ERRO - Não é posível abrir o arquivo de registros '%s' "
+"(%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Padrão: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Nível de depuramento ajustado para %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:ERROR: O buffer do bloco é NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr "%s:%d:OLE_get_block:ERROR: Não é possível alocar %d para o bloco OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:ERROR: Falha na busca (bloco=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d: Não há correspondência na leitura de bytes. Requereu-se %d, obteve-se "
+"%d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:ERRO: O arquivo OLE está fechado\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:ERRO: Não se consegue alocar %d bytes\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:ERRO: Não se consegue carregar bloco, setor de importação "
+"= 0x%x, posição de fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:ERRO: Limite da memória FAT excedido %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:ERRO: pedido do setor foi negativo (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:ERRO: Falhou ao alocar memória suficiente para "
+"miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain:ERRO: Load-chain ultrapassou os limites de memória"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:ERROR: Não é possível localizar o arquivo '%s' para abri-"
+"lo (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d:OLE_open_file:ERRO: Não é possível abrir %s para leitura (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:ERRO: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:ERRO: Não é possível compor texto de nome de arquivo "
+"completo a partir de '%s' e '%s'"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ERRO: Não é possível abrir %s para escrita (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:AVISO: Escreveu apenas %d de %d bytes para o arquivo "
+"%s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERRO: Impossível criar o texto de nome de "
+"arquivo a partir de '%s' e '%s'"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:AVISO: Escreveu apenas %d de %d bytes para o "
+"arquivo %s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ERRO: Não se consegue abrir %s para escrita "
+"(%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Anexo %s:%s:%s tamanho = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Chamando o relator para o nome de "
+"arquivo"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Não foi possível decodificar o fluxo contendo o texto '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ERRO: Não é possível alocar %d bytes de memória para a "
+"realizar a operação de substituição"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: A memória alocada esgotou-se durante a "
+"substituição de \"%s\" por \"%s\""
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Decodificando o nome de arquivo=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE exige um arquivo de entrada para decodificar.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: A decodificação de %s resultou no erro %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "O módulo Planilha (Spreadsheet) do Scilab não está instalado.\n"
+
+msgid "Spreadsheet"
+msgstr "Planilha"
+
+msgid "Read a xls file"
+msgstr "Ler um arquivo xls"
diff --git a/modules/spreadsheet/locales/ru_RU.po b/modules/spreadsheet/locales/ru_RU.po
new file mode 100755
index 000000000..8ce079278
--- /dev/null
+++ b/modules/spreadsheet/locales/ru_RU.po
@@ -0,0 +1,435 @@
+# Russian translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-03-19 15:09+0000\n"
+"Last-Translator: Stanislav V. Kroter <krotersv@gmail.com>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: ru\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr "%s: Неверный тип входного аргумента №%d: Ожидалась строка.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr "%s: Неверный размер входного параметра №%d: ожидалась строка.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Ошибка распределения памяти.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr "%s: Неверный тип входного аргумента №%d: Ожидался тип double.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: ожидалось число типа double.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалось логическое значение.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: Неверный размер входного параметра №%d: ожидалось логическое значение.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалась матрица значений типа "
+"double.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалась матрица "
+"целочисленных значений типа double.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s: Неверное значение входного параметра №%d: ожидалось «%s», «%s», «%s», "
+"«%s», «%s» или «%s».\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалось значение удвоенной "
+"точности (от %d до %d).\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: Ожидалось '%s', '%s', '%s' , "
+"'%s', '%s', '%s', '%s' или '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: Ожидалось четыре элемента.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: Ожидался вектор-столбец или "
+"вектор-строка.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: несовместимый диапазон.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s: Неверный размер входного аргумента №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалось строковое значение "
+"'%s' или '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s: Неверное значение входного аргумента №%d.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr "%s: разделитель и десятичная точка должны иметь разные значения.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+"%s: Диапазон строк или/и столбцов оставляет индекс(ы) за пределами.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s: не удалось преобразовать данные.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s: %s не существует.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s: не удалось открыть файл %s.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr "%s: не удалось прочитать файл %s: ошибка в структуре столбцов\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s: не удалось прочитать файл %s.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr "%s: Неверный размер входного аргумента №%d: ожидался вектор строк.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr "%s: не удалось прочитать текст: ошибка в структуре столбцов\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s: не удалось прочитать текст.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d:ожидалсся массив строк размером 1 "
+"на n или m на 1.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалось значение от 1 до 17 "
+"типа double.\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s: Неподдерживаемый формат %s.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Неверное значение входного параметра №%d: ожидалось «%s» или «%s».\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалась матрица строк или матрица "
+"вещественных значений.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s: ошибка.\n"
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Файл %s не существует.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: Файл %s не является файлом ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: Не удалось открыть файл %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: В файле ole2 %s нет xls-потока.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: Не ole2 файл.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: Файл не содержит каталога Workbook.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: Не осталось доступной памяти.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: Файл повреждён или некорректен.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: Поддерживается только формат файлов BIFF8.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s: Неверный тип входного параметра №%d: ожидался скаляр.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: Не удалось прочитать ожидаемые данные, возможно неправильный файл xls.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: Конец файла.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+"%s: Обнаружено несоответствие столбцов. На строке %d обнаружено %d столбцов "
+"хотя прошлая имела %d.\n"
+
+msgid "Warning"
+msgstr "Внимание"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile: ОШИБК - Не удалось открыть файл лога «%s» (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: ОШИБКА - Не удалось открыть файл лога «%s» (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: Уровень отладки установлен в %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:ОШИБКА: Блочный буфер равен NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block:ОШИБКА: Не удалось выделить %d байт для OLE-блока"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:ОШИБКА: Проблема поиска (block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:Несовпадение в чтении байт. Запрошено %d, получено %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:ОШИБКА: OLE-файл закрыт\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:ОШИБКА: Не удалось выделить %d байт\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT:ОШИБКА: Не удалось загрузить блок, import sector = 0x%x, "
+"fat position = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load_FAT:ОШИБКА: Превышена предельная граница FAT-памяти %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:ОШИБКА: запрос сектора был отрицателен (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock:ОШИБКА: Не удалось выделить достаточно памяти для "
+"miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr "%s:%d:OLE_load_chain:Ошибка: Load-chain превысила границы памяти"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file:ОШИБКА: Не удалось найти файл «%s» для открытия (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d:OLE_open_file:Ошибка: Не удалось открыть файл «%s» для чтения (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:ОШИБКА: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream:ОШИБКА: Не удалось составить полное имя файла из «%s» "
+"и «%s»"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ОШИБКА: Не удалось открыть файл %s для записи (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream:ВНИМАНИЕ: Записано только %d из %d байт в файл %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ОШИБКА: Не удалось создать имя файла из «%s» и "
+"«%s»"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ВНИМАНИЕ: Записано только %d из %d байт в файл "
+"%s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream:ОШИБКА: Не удалось открыть %s для записи (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:ОТЛАДКА: Attachment %s:%s:%s size = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment:ОТЛАДКА: Calling reporter for the filename"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Не удалось декодировать поток со строкой элемента «%s»\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace:ОШИБКА: Не удалось выделить %d байт в памяти для "
+"выполнения операции замены"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: Выделенная память закончилась в процессе "
+"замены «%s» на «%s»"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Декодирование файла %s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE требуется входной файл для декодирования.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: декодирование %s завершилось ошибкой %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Модуль Spreadsheet (электронная таблица) не установлен.\n"
+
+msgid "Spreadsheet"
+msgstr "Электронная таблица"
+
+msgid "Read a xls file"
+msgstr "Прочитать xls-файл"
diff --git a/modules/spreadsheet/locales/spreadsheet.pot b/modules/spreadsheet/locales/spreadsheet.pot
new file mode 100755
index 000000000..1cec7276f
--- /dev/null
+++ b/modules/spreadsheet/locales/spreadsheet.pot
@@ -0,0 +1,589 @@
+# Localization of the module spreadsheet
+# Please see in SCI/tools/localization for localization management
+# Copyright (C) 2007-2008 - INRIA
+# Copyright (C) 2008-2011 - DIGITEO
+# Copyright (C) 2012-2014 - Scilab-Enterprises
+# This file is distributed under the same license as the Scilab package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"Last-Translator: Vincent COUVERT <vincent.couvert@scilab-enterprises.com>\n"
+"Language-Team: Scilab Localization <localization@lists.scilab.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Revision-Date: 2015-03-27 13:54+0100\n"
+
+# File: sci_gateway/c/gw_csv_helpers.c, line: 72
+# File: sci_gateway/c/gw_csv_helpers.c, line: 137
+# File: sci_gateway/c/gw_csv_helpers.c, line: 288
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 83
+# File: sci_gateway/c/gw_csv_helpers.c, line: 146
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 95
+# File: sci_gateway/c/gw_csv_helpers.c, line: 158
+# File: sci_gateway/c/gw_csv_helpers.c, line: 451
+# File: sci_gateway/c/sci_csvDefault.c, line: 143
+# File: sci_gateway/c/sci_csvDefault.c, line: 293
+# File: sci_gateway/c/sci_csvRead.c, line: 305
+# File: sci_gateway/c/sci_csvRead.c, line: 332
+# File: sci_gateway/c/sci_csvRead.c, line: 370
+# File: sci_gateway/c/sci_csvRead.c, line: 396
+# File: sci_gateway/c/sci_csvRead.c, line: 414
+# File: sci_gateway/c/sci_csvRead.c, line: 447
+# File: sci_gateway/c/sci_csvRead.c, line: 473
+# File: sci_gateway/c/sci_csvRead.c, line: 493
+# File: sci_gateway/c/sci_csvStringToDouble.c, line: 80
+# File: sci_gateway/c/sci_csvStringToDouble.c, line: 105
+# File: sci_gateway/c/sci_csvTextScan.c, line: 204
+# File: sci_gateway/c/sci_csvTextScan.c, line: 227
+# File: sci_gateway/c/sci_csvTextScan.c, line: 257
+# File: sci_gateway/c/sci_csvTextScan.c, line: 278
+# File: sci_gateway/c/sci_csvTextScan.c, line: 297
+# File: sci_gateway/c/sci_csvTextScan.c, line: 310
+# File: sci_gateway/c/sci_csvTextScan.c, line: 330
+# File: sci_gateway/c/sci_csvWrite.c, line: 110
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 191
+# File: sci_gateway/c/sci_csvDefault.c, line: 268
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 201
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 236
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 246
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 424
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/gw_csv_helpers.c, line: 442
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvDefault.c, line: 232
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvDefault.c, line: 285
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvDefault.c, line: 367
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 94
+# File: sci_gateway/c/sci_csvTextScan.c, line: 79
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 101
+# File: sci_gateway/c/sci_csvTextScan.c, line: 86
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 112
+# File: sci_gateway/c/sci_csvTextScan.c, line: 97
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 173
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 198
+# File: sci_gateway/c/sci_csvTextScan.c, line: 114
+# File: sci_gateway/c/sci_csvTextScan.c, line: 135
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 272
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 278
+# File: sci_gateway/c/sci_csvTextScan.c, line: 183
+# File: sci_gateway/c/sci_csvWrite.c, line: 268
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 301
+# File: sci_gateway/c/sci_csvRead.c, line: 366
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 328
+# File: sci_gateway/c/sci_csvRead.c, line: 404
+# File: sci_gateway/c/sci_csvStringToDouble.c, line: 76
+# File: sci_gateway/c/sci_csvStringToDouble.c, line: 112
+# File: sci_gateway/c/sci_csvTextScan.c, line: 223
+# File: sci_gateway/c/sci_csvTextScan.c, line: 285
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 461
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 467
+# File: sci_gateway/c/sci_csvWrite.c, line: 280
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 479
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvRead.c, line: 486
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvTextScan.c, line: 163
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvTextScan.c, line: 316
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvTextScan.c, line: 323
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 82
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 102
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 127
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 150
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 228
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_csvWrite.c, line: 286
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 100
+# File: sci_gateway/c/sci_xls_open.c, line: 122
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 128
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 133
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 143
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 169
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 173
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 177
+# File: sci_gateway/c/sci_xls_read.c, line: 62
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 181
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_open.c, line: 185
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_read.c, line: 39
+# File: sci_gateway/c/sci_xls_read.c, line: 45
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_read.c, line: 66
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_xls_read.c, line: 70
+#, c-format
+msgid "%s: End of file.\n"
+msgstr ""
+
+#
+# File: src/c/csvRead.c, line: 358
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+#
+# File: src/c/csvRead.c, line: 358
+msgid "Warning"
+msgstr ""
+
+#
+# File: src/c/ripole/logger.c, line: 121
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+
+#
+# File: src/c/ripole/logger.c, line: 123
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+
+#
+# File: src/c/ripole/logger.c, line: 365
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 98
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 246
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 326
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 340
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 359
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 374
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 397
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 985
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1049
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1065
+# File: src/c/ripole/ole.c, line: 1078
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1088
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1387
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1473
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1527
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1548
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1599
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1658
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1669
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+
+#
+# File: src/c/ripole/ole.c, line: 1683
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 158
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 170
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 179
+#, c-format
+msgid "%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 299
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 313
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+
+#
+# File: src/c/ripole/olestream-unwrap.c, line: 368
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr ""
+
+#
+# File: src/c/ripole/pldstr.c, line: 564
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+
+#
+# File: src/c/ripole/pldstr.c, line: 667
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+
+#
+# File: src/c/ripole/ripole.c, line: 72
+#, c-format
+msgid "Decoding filename=%s"
+msgstr ""
+
+#
+# File: src/c/ripole/ripole.c, line: 154
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr ""
+
+#
+# File: src/c/ripole/ripole.c, line: 196
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr ""
+
+#
+# File: src/nospreadsheet/nospreadsheet.c, line: 20
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr ""
+
+# File: demos/spreadsheet.dem.gateway.sce, line: 9
+msgid "Spreadsheet"
+msgstr ""
+
+#
+# File: demos/spreadsheet.dem.gateway.sce, line: 11
+msgid "Read a xls file"
+msgstr ""
diff --git a/modules/spreadsheet/locales/uk_UA.po b/modules/spreadsheet/locales/uk_UA.po
new file mode 100755
index 000000000..a03635baf
--- /dev/null
+++ b/modules/spreadsheet/locales/uk_UA.po
@@ -0,0 +1,460 @@
+# Ukrainian translation for scilab
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the scilab package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+# Yuri Chornoivan <yurchor@gmail.com>, 2010, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-03-19 18:34+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
+"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: uk\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати тип "
+"«string».\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+"%s: помилковий розмір вхідного параметра №%d: слід використовувати рядок.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: помилка під час спроби виділення пам’яті.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути використано тип "
+"«double».\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: мало бути використано тип "
+"«double».\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати тип "
+"«boolean».\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"булівське значення.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути використано тип матриці "
+"зі значень від 1 до 17.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати матрицю "
+"зі значень від 1 до 17.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати «%s», "
+"«%s», «%s», «%s», «%s» або «%s».\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: мало бути вкзаано значення "
+"double (від %d до %d).\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: мало бути вказано «%s», «%s», "
+"«%s» , «%s», «%s», «%s», «%s» або «%s».\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: мало бути чотири записи.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+"%s: помилковий розмір вхідного параметра №%d: слід використовувати вектор-"
+"стовпчик або вектор-рядок.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+"%s: помилкове значення для вхідного параметра №%d: непослідовність у "
+"визначенні діапазонів.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr "%s: помилкова розмірність вхідного параметра №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати рядок "
+"«%s» або «%s».\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr "%s: помилкове значення вхідного параметра №%d.\n"
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr "%s: роздільник і десяткове число мають бути різними.\n"
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+"%s: решта номерів діапазону рядків або стовпчиків лежить поза межами "
+"доступного діапазону.\n"
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr "%s: не вдалося перетворити дані.\n"
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr "%s: %s не існує.\n"
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr "%s: не вдалося відкрити файл %s.\n"
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr "%s: не вдалося прочитати файл %s: помилка у структурі стовпчиків\n"
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr "%s: не вдалося прочитати файл %s.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+"%s: помилковий розмір вхідного параметра №%d: слід використовувати рядок "
+"рядків.\n"
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr "%s: не вдалося прочитати текст: помилка у структурі стовпчиків\n"
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr "%s: не вдалося прочитати текст.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"масиви 1xn або mx1 з рядків.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати значення "
+"від 1 до 17.\n"
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr "%s: непідтримуваний формат %s.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Помилкове значення вхідного параметра №%d: слід використовувати «%s» або "
+"«%s».\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати матрицю з "
+"рядків або дійсних значень.\n"
+
+#, c-format
+msgid "%s: error.\n"
+msgstr "%s: помилка.\n"
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "Файла з назвою %s не існує.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: файл %s не є файлом ole2.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: не вдалося відкрити файл %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: у файлі ole2 %s не виявлено потоку даних xls.\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: не є файлом ole2.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: у файлі не вказано каталогу робочої книги.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: доступну пам’ять вичерпано.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: помилковий або пошкоджений файл.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: можлива обробка лише файлів у форматі BIFF8.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати скалярний "
+"тип.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr ""
+"%s: не вдалося прочитати потрібні дані, ймовірно, помилка у файлі xls.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: кінець файла.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+"%s: виявлено несумісності у стовпчика. У рядку %d виявлено %d стовпчики, "
+"хоча у попередньому їх було %d.\n"
+
+msgid "Warning"
+msgstr "Попередження"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr ""
+"LOGGER_set_logfile: ПОМИЛКА: не вдалося відкрити файл журналу «%s» (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr ""
+"LOGGER_set_logfile: ПОМИЛКА: не вдалося відкрити файл журналу «%s» (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: встановлено рівень діагностики %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block: ПОМИЛКА: у буфері блоків зберігається NULL"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr ""
+"%s:%d:OLE_get_block: ПОМИЛКА: не вдалося отримати %d байтів для блоку OLE"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block: ПОМИЛКА: невдале позиціювання (блок=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr ""
+"%s:%d: розбіжність у читанні байтів. Надіслано запит на %d, отримано %d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block: помилка: файл OLE закрито\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT: ПОМИЛКА: не вдалося отримати %d байтів\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr ""
+"%s:%d:OLE_load_FAT: ПОМИЛКА: не вдалося завантажити блок, імпортування "
+"сектора = 0x%x, позиція fat = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr ""
+"%s:%d:OLE_load_FAT: ПОМИЛКА: перевищено обмеження файлової системи FAT %p >= "
+"%p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT: ПОМИЛКА: запит на дані від’ємного сектора (%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr ""
+"%s:%d:OLE_get_miniblock: ПОМИЛКА: не вдалося отримати достатньо пам’яті для "
+"miniChain"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr ""
+"%s:%d:OLE_load_chain: ПОМИЛКА: вихід підпрограми load-chain за межі "
+"доступної пам’яті"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr ""
+"%s:%d:OLE_open_file: ПОМИЛКА: не вдалося виявити файл «%s» для відкриття (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr ""
+"%s:%d:OLE_open_file: ПОМИЛКА: не вдалося відкрити %s для читання (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory: ПОМИЛКА: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr ""
+"%s:%d:OLE_store_stream: ПОМИЛКА: не вдалося створити загального рядка назви "
+"файла з «%s» та «%s»"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr ""
+"%s:%d:OLE_store_stream:ПОМИЛКА: не вдалося відкрити %s для запису (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr ""
+"%s:%d:OLE_store_stream: ПОПЕРЕДЖЕННЯ: записано лише %d з %d байтів до файла "
+"%s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream: ПОМИЛКА: не вдалося створити рядок назви файла "
+"за «%s» і «%s»"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream: ПОПЕРЕДЖЕННЯ: записано лише %d з %d байтів до "
+"файла %s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_save_stream: ПОМИЛКА: не вдалося відкрити %s для запису "
+"(%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment: ДІАГНОСТИКА: долучення %s:%s:%s розмір = "
+"%d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr ""
+"%s:%d:OLEUNWRAP_decode_attachment: ДІАГНОСТИКА: надсилання запиту щодо назви "
+"файла"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "Не вдалося декодувати потік з рядком елементів «%s»\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr ""
+"%s:%d:PLD_strreplace: ПОМИЛКА: не вдалося отримати %d байтів пам’яті для "
+"виконання дії з заміни"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr ""
+"%s:%d:PLD_strreplace_general: під час заміни «%s» на «%s» вичерпано отриману "
+"пам’ять"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "Декодування файла %s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "Для використання ripOLE слід декодувати файл вхідних даних.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: спроба декодування %s призвела до помилки %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Модуль електронних таблиць Scilab не встановлено.\n"
+
+msgid "Spreadsheet"
+msgstr "Електронні таблиці"
+
+msgid "Read a xls file"
+msgstr "Читання з файла xls"
diff --git a/modules/spreadsheet/locales/zh_CN.po b/modules/spreadsheet/locales/zh_CN.po
new file mode 100755
index 000000000..302ced5e9
--- /dev/null
+++ b/modules/spreadsheet/locales/zh_CN.po
@@ -0,0 +1,381 @@
+# Simplified Chinese translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-03-04 09:48+0000\n"
+"Last-Translator: Wesh <Unknown>\n"
+"Language-Team: Simplified Chinese <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: \n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr "%s:第%d个输入参数的值错误:应该为‘%s’或‘%s’。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "文件%s不存在。\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s:文件%s不是一个ole2文件。\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s:无法打开文件%s。\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s:在ole2文件%s中不存在xls流。\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s:不是一个ole2文件。\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s:文件没有Workbook目录。\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: 内存不足。\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s:不正确或被损坏的文件。\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s:只能处理BIFF8文件格式。\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s:输入参数#%d的类型错误:应该为标量。\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr "%s:读取指定数据失败,可能是不正确的xls文件。\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s:文件结束。\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile:错误 - 不能打开日志文件'%s'(%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr "LOGGER_set_logfile:错误 - 不能打开日志文件'%s'(%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-Default:%s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE:%s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug:调试级别设置为%d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:错误:块缓存是NULL。"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr "%s:%d:OLE_get_block:错误:无法为OLE快申请%d字节。"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:错误:寻址失败(block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:在字节读取中不匹配。需要%d,却得到%d\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:错误:OLE文件关闭。\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:错误:不能申请%d个字节。\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr "%s:%d:OLE_load_FAT:错误:无法装载块,import sector = 0x%x,fat position = 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:错误:FAT内存边界限制超出%p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:错误:扇区请求时负数(%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr "%s:%d:OLE_get_miniblock:错误:为miniChain申请足够的内存失败"
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr "%s:%d:OLE_load_chain:错误:Load-chain越过了内存边界。"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr "%s:%d:OLE_open_file:错误:无法找到文件'%s'并打开(%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file:错误:无法打开文件'%s'进行读操作(%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:错误:%s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr "%s:%d:OLE_store_stream:错误:无法从'%s'和'%s'组成完整的文件名。"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr "%s:%d:OLE_store_stream:错误:无法打开%s进行写操作(%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr "%s:%d:OLE_store_stream:警告:只写了%d字节(总共%d字节)到文件%s"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr "%s:%d:OLEUNWRAP_save_stream:错误:不能从'%s'和'%s'来创建文件名字符串。"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr "%s:%d:OLEUNWRAP_save_stream:警告:只写了%d字节(总共%d字节)到文件%s\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr "%s:%d:OLEUNWRAP_save_stream:错误:不能打开%s进行写操作(%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:调试:Attachment %s:%s:%s size = %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:调试:为文件名调用reporter。"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "当有字符串'%s'时不能解码流数据\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr "%s:%d:PLD_strreplace:错误:不能从内存中申请%d字节用来进行替换操作"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr "%s:%d:PLD_strreplace_general:当替换'%s'为'%s'时已申请的内存被用光。"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "解码 filename=%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE需要解码一个输入文件。\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE:解码%s时出现错误%d。\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "Scilab spreadsheet 模块没有安装。\n"
+
+msgid "Spreadsheet"
+msgstr "电子表格"
+
+msgid "Read a xls file"
+msgstr "读取一个xls文件"
diff --git a/modules/spreadsheet/locales/zh_TW.po b/modules/spreadsheet/locales/zh_TW.po
new file mode 100755
index 000000000..f9246fdf0
--- /dev/null
+++ b/modules/spreadsheet/locales/zh_TW.po
@@ -0,0 +1,381 @@
+# Traditional Chinese translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2011-12-13 07:28+0000\n"
+"Last-Translator: TzuYuan Lin <Unknown>\n"
+"Language-Team: Traditional Chinese <zh_TW@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: \n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A boolean expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A matrix of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A matrix of double, with integer "
+"values, expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', "
+"'%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Four entries expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A column or row vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Inconsistent range.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: separator and decimal must have different values.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Range row or/and column left indice(s) out of bounds.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not convert data.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s does not exist.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not open file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read file %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: String vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text: Error in the column structure\n"
+msgstr ""
+
+#, c-format
+msgid "%s: can not read text.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings "
+"expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Not supported format %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr "%s: 第 %d 個輸入參數數值錯誤: 應該是 '%s' 或 '%s'.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A matrix of string or a matrix of "
+"real expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: error.\n"
+msgstr ""
+
+#, c-format
+msgid "The file %s does not exist.\n"
+msgstr "檔案 %s 不存在.\n"
+
+#, c-format
+msgid "%s: File %s is not an ole2 file.\n"
+msgstr "%s: 檔案 %s 不是一 ole2 檔.\n"
+
+#, c-format
+msgid "%s: Cannot open file %s.\n"
+msgstr "%s: 無法開啟檔案 %s.\n"
+
+#, c-format
+msgid "%s: There is no xls stream in the ole2 file %s.\n"
+msgstr "%s: ole2 檔 %s 內沒有 xls 串流 (stream ).\n"
+
+#, c-format
+msgid "%s: Not an ole2 file.\n"
+msgstr "%s: 不是一 ole2 檔.\n"
+
+#, c-format
+msgid "%s: The file has no Workbook directory.\n"
+msgstr "%s: 檔案內沒有 Workbook 目錄.\n"
+
+#, c-format
+msgid "%s: No more memory.\n"
+msgstr "%s: 記憶體耗盡.\n"
+
+#, c-format
+msgid "%s: Incorrect or corrupted file.\n"
+msgstr "%s: 檔案不正確或已毀損.\n"
+
+#, c-format
+msgid "%s: Only BIFF8 file format is handled.\n"
+msgstr "%s: 只能處理 BIFF8 檔案格式.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Scalar expected.\n"
+msgstr "%s: 第 %d 個輸入參數型態錯誤: 應為純量.\n"
+
+#, c-format
+msgid "%s: Failed to read expected data, may be invalid xls file.\n"
+msgstr "%s: 讀取資料失敗, xls 檔可能不正確.\n"
+
+#, c-format
+msgid "%s: End of file.\n"
+msgstr "%s: 檔案結束.\n"
+
+#, c-format
+msgid ""
+"%s: Inconsistency found in the columns. At line %d, found %d columns while "
+"the previous had %d.\n"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"
+msgstr "LOGGER_set_logfile: 錯誤- 無法開啟紀錄檔 '%s' (%s)"
+
+#, c-format
+msgid "LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"
+msgstr "LOGGER_set_logfile: 錯誤- 無法開啟紀錄檔 '%s' (%s)\n"
+
+#, c-format
+msgid "LOGGER-Default: %s%s"
+msgstr "LOGGER-內定: %s%s"
+
+#, c-format
+msgid "ripOLE: %s\n"
+msgstr "ripOLE: %s\n"
+
+#, c-format
+msgid "%s:%d:OLE_set_debug: Debug level set to %d"
+msgstr "%s:%d:OLE_set_debug: 偵錯層級設為 %d"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Block buffer is NULL"
+msgstr "%s:%d:OLE_get_block:錯誤: 暫存區塊為 NULL (空)"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"
+msgstr "%s:%d:OLE_get_block:錯誤: 無法配置 %d 位元給 OLE block"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"
+msgstr "%s:%d:OLE_get_block:錯誤: Seek 指令失敗 (block=%d:%d)"
+
+#, c-format
+msgid "%s:%d:Mismatch in bytes read. Requested %d, got %d\n"
+msgstr "%s:%d:讀取之位元數與要求不合. 需求 %d 位元, 得到 %d 位元.\n"
+
+#, c-format
+msgid "%s:%d:OLE_get_block:ERROR: OLE file is closed\n"
+msgstr "%s:%d:OLE_get_block:錯誤: OLE 檔已關閉\n"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"
+msgstr "%s:%d:OLE_load_FAT:錯誤: 無法配置 %d 位元\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat "
+"position = 0x%x"
+msgstr "%s:%d:OLE_load_FAT:錯誤: 無法載入區塊,匯入區段 (sector ) =0x%x, fat 位置= 0x%x"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"
+msgstr "%s:%d:OLE_load_FAT:錯誤: FAT 記憶超過邊界限制 , %p >= %p"
+
+#, c-format
+msgid "%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"
+msgstr "%s:%d:OLE_load_FAT:錯誤: 要求之區段 (sector ) 為負值(%d)"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"
+msgstr "%s:%d:OLE_get_miniblock:錯誤: 無法為 miniChain 配置記憶區."
+
+#, c-format
+msgid "%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"
+msgstr "%s:%d:OLE_load_chain:錯誤:載入鏈 (Load-chain) 超過記憶體邊界"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"
+msgstr "%s:%d:OLE_open_file::錯誤: 無法找到檔案 '%s' 以開啟 (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"
+msgstr "%s:%d:OLE_open_file::錯誤: 無法開啟檔案 '%s' 以讀取 (%s)\n"
+
+#, c-format
+msgid "%s:%d:OLE_open_directory:ERROR: %s"
+msgstr "%s:%d:OLE_open_directory:錯誤: %s"
+
+#, c-format
+msgid ""
+"%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' "
+"and '%s'"
+msgstr "%s:%d:OLE_store_stream:錯誤: 無法由字串 '%s' 及 '%s' 組合成檔案全名"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"
+msgstr "%s:%d:OLE_store_stream:錯誤: 無法開啟 %s 以讀取 (%s)"
+
+#, c-format
+msgid "%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"
+msgstr "%s:%d:OLE_store_stream:警告: 只寫入 %d 位元而非 %d 位元到檔案 %s 中"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from "
+"'%s' and '%s'"
+msgstr "%s:%d:OLEUNWRAP_save_stream:錯誤: 無法由字串 '%s' 及 '%s' 產生檔案名稱"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"
+msgstr "%s:%d:OLEUNWRAP_save_stream:警告: 只寫入 %d 位元而非 %d 位元到檔案 %s 中\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"
+msgstr "%s:%d:OLEUNWRAP_save_stream:錯誤:無法開啟檔案 %s 以寫入 (%s)\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:偵錯: 附件%s:%s:%s 大小= %d\n"
+
+#, c-format
+msgid ""
+"%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"
+msgstr "%s:%d:OLEUNWRAP_decode_attachment:偵錯: 針對此檔名做一報告"
+
+#, c-format
+msgid "Unable to decode stream with element string '%s'\n"
+msgstr "無法解譯串流中之字串元素 '%s'\n"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform "
+"replacement operation"
+msgstr "%s:%d:PLD_strreplace:錯誤: 無法配置 %d 位元記憶區以完成取代運算"
+
+#, c-format
+msgid ""
+"%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' "
+"with '%s'"
+msgstr "%s:%d:PLD_strreplace:錯誤: 進行將 '%s' 代以'%s' 時,配置記憶區完全用完"
+
+#, c-format
+msgid "Decoding filename=%s"
+msgstr "解碼檔名 =%s"
+
+#, c-format
+msgid "ripOLE requires an input file to decode.\n"
+msgstr "ripOLE 須要一輸入檔以進尋解碼.\n"
+
+#, c-format
+msgid "ripOLE: decoding of %s resulted in error %d.\n"
+msgstr "ripOLE: 進行 %s 之解碼時發生錯誤 %d.\n"
+
+msgid "Scilab spreadsheet module not installed.\n"
+msgstr "未安裝 Scilab spreadsheet 模組.\n"
+
+msgid "Spreadsheet"
+msgstr ""
+
+msgid "Read a xls file"
+msgstr "讀取 xls 檔案. (Excel 檔)"
diff --git a/modules/spreadsheet/macros/buildmacros.bat b/modules/spreadsheet/macros/buildmacros.bat
new file mode 100755
index 000000000..a73ca67f8
--- /dev/null
+++ b/modules/spreadsheet/macros/buildmacros.bat
@@ -0,0 +1,11 @@
+
+rem Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+rem Copyright (C) 2008 - INRIA
+rem
+rem This file must be used under the terms of the CeCILL.
+rem This source file is licensed as described in the file COPYING, which
+rem you should have received as part of this distribution. The terms
+rem are also available at
+rem http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
diff --git a/modules/spreadsheet/macros/buildmacros.sce b/modules/spreadsheet/macros/buildmacros.sce
new file mode 100755
index 000000000..8b88958d1
--- /dev/null
+++ b/modules/spreadsheet/macros/buildmacros.sce
@@ -0,0 +1,15 @@
+
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+if (isdef("genlib") == %f) then
+ exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce");
+end
+
+genlib("spreadsheetlib","SCI/modules/spreadsheet/macros",%f,%t);
diff --git a/modules/spreadsheet/macros/cleanmacros.bat b/modules/spreadsheet/macros/cleanmacros.bat
new file mode 100755
index 000000000..4ad1bbae2
--- /dev/null
+++ b/modules/spreadsheet/macros/cleanmacros.bat
@@ -0,0 +1,13 @@
+
+rem Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+rem Copyright (C) 2008 - INRIA
+rem
+rem This file must be used under the terms of the CeCILL.
+rem This source file is licensed as described in the file COPYING, which
+rem you should have received as part of this distribution. The terms
+rem are also available at
+rem http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+@del *.bin 2>NUL
+@del lib 2>NUL
+@del names 2>NUL
diff --git a/modules/spreadsheet/macros/lib b/modules/spreadsheet/macros/lib
new file mode 100755
index 000000000..93c8fbb12
--- /dev/null
+++ b/modules/spreadsheet/macros/lib
Binary files differ
diff --git a/modules/spreadsheet/macros/names b/modules/spreadsheet/macros/names
new file mode 100755
index 000000000..5a41185f6
--- /dev/null
+++ b/modules/spreadsheet/macros/names
@@ -0,0 +1 @@
+readxls
diff --git a/modules/spreadsheet/macros/readxls.bin b/modules/spreadsheet/macros/readxls.bin
new file mode 100755
index 000000000..e53d8ac54
--- /dev/null
+++ b/modules/spreadsheet/macros/readxls.bin
Binary files differ
diff --git a/modules/spreadsheet/macros/readxls.sci b/modules/spreadsheet/macros/readxls.sci
new file mode 100755
index 000000000..7a160d6fd
--- /dev/null
+++ b/modules/spreadsheet/macros/readxls.sci
@@ -0,0 +1,33 @@
+
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+// Copyright (C) 2005- INRIA - Pierrick Mode
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function sheets=readxls(fil)
+ if argn(2)==1 then opt=1,end
+ fil=pathconvert(fil,%f,%t)
+ sheets=mlist(["xls","sheets"],list())
+ [fd,Text,Sheetnames,Abspos]=xls_open(fil)
+ Text=["", Text];
+ for k=1:size(Abspos,"*")
+ [Value,TextInd]=xls_read(fd,Abspos(k))
+ if Value==[] then
+ sheet=mlist(["xlssheet","name","text","value"],Sheetnames(k),[],Value)
+ else
+ if size(Text,"*")==1 then
+ T=emptystr(Value)
+ else
+ T=matrix(Text(TextInd+1),size(Value))
+ end
+ sheet=mlist(["xlssheet","name","text","value"],Sheetnames(k),T,Value)
+ end
+ sheets.sheets($+1)= sheet
+ end
+ mclose(fd)
+endfunction
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/.dirstamp b/modules/spreadsheet/sci_gateway/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/.dirstamp
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_csv_helpers.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_csv_helpers.Plo
new file mode 100755
index 000000000..1c04e11bd
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_csv_helpers.Plo
@@ -0,0 +1,293 @@
+sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo: \
+ sci_gateway/c/gw_csv_helpers.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ sci_gateway/c/gw_csv_helpers.h \
+ ../../modules/core/includes/freeArrayOfString.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+sci_gateway/c/gw_csv_helpers.h:
+
+../../modules/core/includes/freeArrayOfString.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_spreadsheet.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_spreadsheet.Plo
new file mode 100755
index 000000000..0f217c0f2
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-gw_spreadsheet.Plo
@@ -0,0 +1,275 @@
+sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo: \
+ sci_gateway/c/gw_spreadsheet.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/core/includes/callFunctionFromGateway.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/core/includes/callFunctionFromGateway.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvDefault.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvDefault.Plo
new file mode 100755
index 000000000..570f3416c
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvDefault.Plo
@@ -0,0 +1,317 @@
+sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo: \
+ sci_gateway/c/sci_csvDefault.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/freeArrayOfString.h src/c/csvDefault.h \
+ sci_gateway/c/gw_csv_helpers.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+src/c/csvDefault.h:
+
+sci_gateway/c/gw_csv_helpers.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvRead.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvRead.Plo
new file mode 100755
index 000000000..ccc29be16
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvRead.Plo
@@ -0,0 +1,336 @@
+sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo: \
+ sci_gateway/c/sci_csvRead.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h src/c/csvRead.h \
+ ../../modules/string/includes/stringToComplex.h \
+ ../../modules/string/includes/complex_array.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/core/includes/BOOL.h src/c/csvDefault.h \
+ ../../modules/string/includes/complex_array.h \
+ sci_gateway/c/gw_csv_helpers.h src/c/getRange.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+src/c/csvRead.h:
+
+../../modules/string/includes/stringToComplex.h:
+
+../../modules/string/includes/complex_array.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/core/includes/BOOL.h:
+
+src/c/csvDefault.h:
+
+../../modules/string/includes/complex_array.h:
+
+sci_gateway/c/gw_csv_helpers.h:
+
+src/c/getRange.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvStringToDouble.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvStringToDouble.Plo
new file mode 100755
index 000000000..99d5dcb3d
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvStringToDouble.Plo
@@ -0,0 +1,310 @@
+sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo: \
+ sci_gateway/c/sci_csvStringToDouble.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ ../../modules/string/includes/stringToComplex.h \
+ ../../modules/string/includes/complex_array.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/core/includes/BOOL.h src/c/csvDefault.h \
+ sci_gateway/c/gw_csv_helpers.h \
+ ../../modules/string/includes/complex_array.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+../../modules/string/includes/stringToComplex.h:
+
+../../modules/string/includes/complex_array.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/core/includes/BOOL.h:
+
+src/c/csvDefault.h:
+
+sci_gateway/c/gw_csv_helpers.h:
+
+../../modules/string/includes/complex_array.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvTextScan.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvTextScan.Plo
new file mode 100755
index 000000000..d7d1ac7bc
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvTextScan.Plo
@@ -0,0 +1,319 @@
+sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo: \
+ sci_gateway/c/sci_csvTextScan.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ ../../modules/string/includes/stringToComplex.h \
+ ../../modules/string/includes/complex_array.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/core/includes/BOOL.h src/c/csvDefault.h src/c/csvRead.h \
+ src/c/getRange.h ../../modules/string/includes/complex_array.h \
+ sci_gateway/c/gw_csv_helpers.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+../../modules/string/includes/stringToComplex.h:
+
+../../modules/string/includes/complex_array.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/core/includes/BOOL.h:
+
+src/c/csvDefault.h:
+
+src/c/csvRead.h:
+
+src/c/getRange.h:
+
+../../modules/string/includes/complex_array.h:
+
+sci_gateway/c/gw_csv_helpers.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvWrite.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvWrite.Plo
new file mode 100755
index 000000000..c59eef21a
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_csvWrite.Plo
@@ -0,0 +1,316 @@
+sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo: \
+ sci_gateway/c/sci_csvWrite.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h src/c/csvWrite.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/freeArrayOfString.h src/c/csvDefault.h \
+ src/c/checkCsvWriteFormat.h sci_gateway/c/gw_csv_helpers.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+src/c/csvWrite.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+src/c/csvDefault.h:
+
+src/c/checkCsvWriteFormat.h:
+
+sci_gateway/c/gw_csv_helpers.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_open.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_open.Plo
new file mode 100755
index 000000000..bed7a4e29
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_open.Plo
@@ -0,0 +1,276 @@
+sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo: \
+ sci_gateway/c/sci_xls_open.c /usr/include/stdc-predef.h \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h src/c/xls.h src/c/ripole/ole.h \
+ src/c/ripole/ripole.h ../../modules/fileio/includes/expandPathVariable.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/fileio/includes/dynlib_fileio.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/fileio/includes/mopen.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/tmpdir.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ ../../modules/fileio/includes/FileExist.h \
+ ../../modules/core/includes/BOOL.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+src/c/xls.h:
+
+src/c/ripole/ole.h:
+
+src/c/ripole/ripole.h:
+
+../../modules/fileio/includes/expandPathVariable.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/fileio/includes/dynlib_fileio.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/fileio/includes/mopen.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/tmpdir.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+../../modules/fileio/includes/FileExist.h:
+
+../../modules/core/includes/BOOL.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_read.Plo b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_read.Plo
new file mode 100755
index 000000000..ca1d72f80
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.deps/libscispreadsheet_la-sci_xls_read.Plo
@@ -0,0 +1,245 @@
+sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo: \
+ sci_gateway/c/sci_xls_read.c /usr/include/stdc-predef.h \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h includes/gw_spreadsheet.h \
+ includes/dynlib_spreadsheet.h src/c/xls.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_spreadsheet.h:
+
+includes/dynlib_spreadsheet.h:
+
+src/c/xls.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
diff --git a/modules/spreadsheet/sci_gateway/c/.dirstamp b/modules/spreadsheet/sci_gateway/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.dirstamp
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_csv_helpers.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_csv_helpers.o
new file mode 100755
index 000000000..2eff98dad
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_csv_helpers.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_spreadsheet.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_spreadsheet.o
new file mode 100755
index 000000000..abc1c71d2
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-gw_spreadsheet.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvDefault.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvDefault.o
new file mode 100755
index 000000000..fe3c34d6f
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvDefault.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvRead.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvRead.o
new file mode 100755
index 000000000..7309ff3bd
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvRead.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvStringToDouble.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvStringToDouble.o
new file mode 100755
index 000000000..a448ab9de
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvStringToDouble.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvTextScan.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvTextScan.o
new file mode 100755
index 000000000..93d932d6f
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvTextScan.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvWrite.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvWrite.o
new file mode 100755
index 000000000..1365f5aa0
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_csvWrite.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_open.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_open.o
new file mode 100755
index 000000000..414f976eb
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_open.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_read.o b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_read.o
new file mode 100755
index 000000000..dc02b41c8
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/.libs/libscispreadsheet_la-sci_xls_read.o
Binary files differ
diff --git a/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.c b/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.c
new file mode 100755
index 000000000..fb07843af
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.c
@@ -0,0 +1,466 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+#include <string.h>
+#include "api_scilab.h"
+#include "sci_types.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include "localization.h"
+#include "gw_csv_helpers.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "freeArrayOfString.h"
+// =============================================================================
+char *csv_getArgumentAsStringWithEmptyManagement(void* _pvCtx, int _iVar, const char *fname,
+ const char *defaultValue,
+ int *iErr)
+{
+ SciErr sciErr;
+ char *returnedValue = NULL;
+ int *piAddressVar = NULL;
+ int iType = 0;
+ int m = 0, n = 0;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return NULL;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return NULL;
+ }
+
+ if (iType != sci_strings)
+ {
+ if (isEmptyMatrix(pvApiCtx, piAddressVar))
+ {
+ /* [] equals default value */
+ if (defaultValue)
+ {
+ *iErr = 0;
+ returnedValue = strdup(defaultValue);
+ }
+ else
+ {
+ *iErr = 0;
+ returnedValue = NULL;
+ }
+ }
+ else
+ {
+ *iErr = API_ERROR_INVALID_TYPE;
+ Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), fname, _iVar);
+ return NULL;
+ }
+ }
+ else
+ {
+ *iErr = checkVarDimension(pvApiCtx, piAddressVar, 1, 1);
+
+ if (*iErr == 0 )
+ {
+ *iErr = API_ERROR_CHECK_VAR_DIMENSION;
+ Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), fname, _iVar);
+ return NULL;
+ }
+
+ *iErr = getAllocatedSingleString(pvApiCtx, piAddressVar, &returnedValue);
+ if (*iErr)
+ {
+ if (returnedValue)
+ {
+ FREE(returnedValue);
+ }
+
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return NULL;
+ }
+ if (strlen(returnedValue) == 0)
+ {
+ returnedValue = strdup(defaultValue);
+ }
+ }
+ return returnedValue;
+}
+// =============================================================================
+
+char *csv_getArgumentAsString(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr)
+{
+ SciErr sciErr;
+
+ int *piAddressVar = NULL;
+ int m = 0, n = 0;
+ int iType = 0;
+
+ char *returnedValue = NULL;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ if (iType != sci_strings)
+ {
+ *iErr = API_ERROR_INVALID_TYPE;
+ Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), fname, 1);
+ return NULL;
+ }
+
+ *iErr = checkVarDimension(pvApiCtx, piAddressVar, 1, 1);
+
+ if (*iErr == 0 )
+ {
+ *iErr = API_ERROR_CHECK_VAR_DIMENSION;
+ Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), fname, _iVar);
+ return NULL;
+ }
+
+ *iErr = getAllocatedSingleString(pvApiCtx, piAddressVar, &returnedValue);
+ if (*iErr)
+ {
+ if (returnedValue)
+ {
+ FREE(returnedValue);
+ }
+
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return NULL;
+ }
+ return returnedValue;
+}
+// =============================================================================
+double csv_getArgumentAsScalarDouble(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr)
+{
+ SciErr sciErr;
+ double dValue = 0.;
+ int *piAddressVar = NULL;
+ int m = 0, n = 0;
+ int iType = 0;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return 0;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A double expected.\n"), fname, _iVar);
+ *iErr = API_ERROR_INVALID_TYPE;
+ return 0;
+ }
+
+ *iErr = checkVarDimension(pvApiCtx, piAddressVar, 1, 1);
+
+ if (*iErr == 0 )
+ {
+ *iErr = API_ERROR_CHECK_VAR_DIMENSION;
+ Scierror(999, _("%s: Wrong size for input argument #%d: A double expected.\n"), fname, _iVar);
+ return 0;
+ }
+
+ *iErr = getScalarDouble(pvApiCtx, piAddressVar, &dValue);
+ return dValue;
+}
+// =============================================================================
+int csv_getArgumentAsScalarBoolean(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr)
+{
+ SciErr sciErr;
+ int bValue = 0;
+ int *piAddressVar = NULL;
+ int m = 0, n = 0;
+ int iType = 0;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return 0;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ *iErr = sciErr.iErr;
+ return 0;
+ }
+
+ if (iType != sci_boolean)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A boolean expected.\n"), fname, _iVar);
+ *iErr = API_ERROR_INVALID_TYPE;
+ return 0;
+ }
+
+ *iErr = checkVarDimension(pvApiCtx, piAddressVar, 1, 1);
+
+ if (*iErr == 0 )
+ {
+ *iErr = API_ERROR_CHECK_VAR_DIMENSION;
+ Scierror(999, _("%s: Wrong size for input argument #%d: A boolean expected.\n"), fname, _iVar);
+ return 0;
+ }
+
+ *iErr = getScalarBoolean(pvApiCtx, piAddressVar, &bValue);
+ return bValue;
+}
+// =============================================================================
+char **csv_getArgumentAsMatrixOfString(void* _pvCtx, int _iVar,
+ const char *fname,
+ int *m, int *n, int *iErr)
+{
+ SciErr sciErr;
+ char **pStringValues = NULL;
+ int *piAddressVar = NULL;
+ int m_ = 0, n_ = 0;
+ int iType = 0;
+ int *lengthStringValues = NULL;
+ int i = 0;
+
+ *m = 0;
+ *n = 0;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ if (iType != sci_strings)
+ {
+ *iErr = API_ERROR_INVALID_TYPE;
+ Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), fname, _iVar);
+ return NULL;
+ }
+
+ *iErr = getAllocatedMatrixOfString(pvApiCtx, piAddressVar, &m_, &n_, &pStringValues);
+ if (*iErr != 0)
+ {
+ if (pStringValues)
+ {
+ FREE(pStringValues);
+ }
+ return NULL;
+ }
+
+ *iErr = 0;
+ *m = m_;
+ *n = n_;
+
+ return pStringValues;
+}
+// =============================================================================
+int csv_isRowVector(void* _pvCtx, int _iVar)
+{
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+ return isRowVector(pvApiCtx, piAddressVar);
+}
+// =============================================================================
+int csv_isColumnVector(void* _pvCtx, int _iVar)
+{
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+ return isColumnVector(pvApiCtx, piAddressVar);
+}
+// =============================================================================
+int csv_isScalar(void* _pvCtx, int _iVar)
+{
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+ return isScalar(pvApiCtx, piAddressVar);
+}
+// =============================================================================
+int csv_isDoubleScalar(void* _pvCtx, int _iVar)
+{
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+
+ if (csv_isScalar(_pvCtx, _iVar))
+ {
+ int iType = 0;
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+
+ if (isVarComplex(pvApiCtx, piAddressVar) == 0)
+ {
+ return (iType == sci_matrix);
+ }
+ }
+ return 0;
+}
+// =============================================================================
+int csv_isEmpty(void* _pvCtx, int _iVar)
+{
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ if (sciErr.iErr)
+ {
+ return 0;
+ }
+ }
+
+ return isEmptyMatrix(pvApiCtx, piAddressVar);
+}
+// =============================================================================
+int *csv_getArgumentAsMatrixofIntFromDouble(void* _pvCtx, int _iVar,
+ const char *fname,
+ int *m, int *n, int *iErr)
+{
+ int *iReturnedArray = NULL;
+ double *dArray = NULL;
+ SciErr sciErr;
+ int *piAddressVar = NULL;
+ int iType = 0;
+ int m_ = 0;
+ int n_ = 0;
+ int i = 0;
+ int j = 0;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddressVar);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVar, &iType);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ if (iType != sci_matrix)
+ {
+ *iErr = API_ERROR_INVALID_TYPE;
+ Scierror(999, _("%s: Wrong type for input argument #%d: A matrix of double expected.\n"), fname, _iVar);
+ return NULL;
+ }
+
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVar, &m_, &n_, &dArray);
+ if (sciErr.iErr)
+ {
+ *iErr = sciErr.iErr;
+ printError(&sciErr, 0);
+ return NULL;
+ }
+
+ for (j = 0; j < m_ * n_; j++)
+ {
+ int iVal = (int)dArray[j];
+ if ((double)iVal != dArray[j])
+ {
+ *iErr = API_ERROR_GET_DOUBLE;
+ Scierror(999, _("%s: Wrong value for input argument #%d: A matrix of double, with integer values, expected.\n"), fname, _iVar);
+ return NULL;
+ }
+ }
+
+ iReturnedArray = (int*)MALLOC(sizeof(int) * (m_ * n_));
+ if (iReturnedArray == NULL)
+ {
+ *iErr = API_ERROR_ALLOC_DOUBLE;
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return NULL;
+ }
+
+ for (j = 0; j < m_ * n_; j++)
+ {
+ iReturnedArray[j] = (int)dArray[j];
+ }
+
+ *iErr = 0;
+ *m = m_;
+ *n = n_;
+
+ return iReturnedArray;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.h b/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.h
new file mode 100755
index 000000000..2261f97eb
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/gw_csv_helpers.h
@@ -0,0 +1,50 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+
+#ifndef __GW_CSV_HELPERS_H__
+#define __GW_CSV_HELPERS_H__
+
+
+char *csv_getArgumentAsStringWithEmptyManagement(void* _pvCtx, int _iVar,
+ const char *fname, const char *defaultValue,
+ int *iErr);
+
+char *csv_getArgumentAsString(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr);
+
+int csv_getArgumentAsScalarBoolean(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr);
+
+char **csv_getArgumentAsMatrixOfString(void* _pvCtx, int _iVar,
+ const char *fname,
+ int *m, int *n, int *iErr);
+
+int *csv_getArgumentAsMatrixofIntFromDouble(void* _pvCtx, int _iVar,
+ const char *fname,
+ int *m, int *n, int *iErr);
+
+double csv_getArgumentAsScalarDouble(void* _pvCtx, int _iVar,
+ const char *fname, int *iErr);
+
+
+int csv_isRowVector(void* _pvCtx, int _iVar);
+int csv_isColumnVector(void* _pvCtx, int _iVar);
+int csv_isScalar(void* _pvCtx, int _iVar);
+int csv_isDoubleScalar(void* _pvCtx, int _iVar);
+int csv_isEmpty(void* _pvCtx, int _iVar);
+
+#endif /* __GW_CSV_HELPERS_H__ */
+// =============================================================================
+
diff --git a/modules/spreadsheet/sci_gateway/c/gw_spreadsheet.c b/modules/spreadsheet/sci_gateway/c/gw_spreadsheet.c
new file mode 100755
index 000000000..957d1b39c
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/gw_spreadsheet.c
@@ -0,0 +1,46 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_spreadsheet.h"
+#include "api_scilab.h"
+#include "MALLOC.h"
+#include "callFunctionFromGateway.h"
+/*--------------------------------------------------------------------------*/
+static gw_generic_table Tab[] =
+{
+ {sci_xls_open, "xls_open"},
+ {sci_xls_read, "xls_read"},
+ {sci_csvDefault, "csvDefault"},
+ {sci_csvRead, "csvRead"},
+ {sci_csvStringToDouble, "csvStringToDouble"},
+ {sci_csvTextScan, "csvTextScan"},
+ {sci_csvWrite, "csvWrite"},
+ {sci_csvWrite, "write_csv"},
+ {sci_csvRead, "read_csv"}
+};
+/*--------------------------------------------------------------------------*/
+int gw_spreadsheet(void)
+{
+ Rhs = Max(0, Rhs);
+
+ if (pvApiCtx == NULL)
+ {
+ pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
+ }
+
+ pvApiCtx->pstName = (char*)Tab[Fin - 1].name;
+ callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab));
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo
new file mode 100755
index 000000000..ba236ccd5
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-gw_csv_helpers.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-gw_csv_helpers.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo
new file mode 100755
index 000000000..c04d0a506
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-gw_spreadsheet.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-gw_spreadsheet.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo
new file mode 100755
index 000000000..cd058f403
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_csvDefault.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_csvDefault.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo
new file mode 100755
index 000000000..9ccdd311a
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_csvRead.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_csvRead.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo
new file mode 100755
index 000000000..6fb82cc4a
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_csvStringToDouble.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_csvStringToDouble.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo
new file mode 100755
index 000000000..0f88146bd
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_csvTextScan.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_csvTextScan.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo
new file mode 100755
index 000000000..a73d7e9a4
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_csvWrite.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_csvWrite.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo
new file mode 100755
index 000000000..e2364bddd
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_xls_open.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_xls_open.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo
new file mode 100755
index 000000000..edd3d8a30
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscispreadsheet_la-sci_xls_read.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_la-sci_xls_read.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/sci_gateway/c/sci_csvDefault.c b/modules/spreadsheet/sci_gateway/c/sci_csvDefault.c
new file mode 100755
index 000000000..a03383f6f
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_csvDefault.c
@@ -0,0 +1,395 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include "gw_spreadsheet.h"
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "csvDefault.h"
+#include "gw_csv_helpers.h"
+
+
+// =============================================================================
+#define SEPARATOR_FIELDNAME "separator"
+#define DECIMAL_FIELDNAME "decimal"
+#define CONVERSION_FIELDNAME "conversion"
+#define PRECISION_FIELDNAME "precision"
+#define COMMENTSREGEXP_FIELDNAME "regexp"
+#define EOL_FIELDNAME "eol"
+#define ENCODING_FIELDNAME "encoding"
+#define RESET_PARAMATERS "reset"
+#define BLANK_FIELDNAME "blank"
+// =============================================================================
+#define MACOS9_EOL_STRING "macos9"
+#define MACOS9_EOL "\r"
+#define WINDOWS_EOL_STRING "windows"
+#define WINDOWS_EOL "\r\n"
+#define LINUX_EOL_STRING "linux"
+#define LINUX_EOL "\n"
+// =============================================================================
+#define NUMBER_FIELD 8
+// =============================================================================
+static void freeVar(char** fieldname, char** fieldvalue);
+static int sci_csvDefault_no_rhs(char *fname);
+static int sci_csvDefault_one_rhs(char *fname);
+static int sci_csvDefault_two_rhs(char *fname);
+// =============================================================================
+int sci_csvDefault(char *fname, unsigned long fname_len)
+{
+ Rhs = Max(0, Rhs);
+ CheckRhs(0, 2);
+ CheckLhs(1, 1);
+
+ switch (Rhs)
+ {
+ case 0:
+ return sci_csvDefault_no_rhs(fname);
+ case 1:
+ return sci_csvDefault_one_rhs(fname);
+ case 2:
+ return sci_csvDefault_two_rhs(fname);
+ }
+ return 0;
+}
+// =============================================================================
+static int sci_csvDefault_no_rhs(char *fname)
+{
+ int sizeArray = NUMBER_FIELD * 2;
+ char **arrayOut = (char**)MALLOC(sizeof(char*) * sizeArray);
+
+ if (arrayOut)
+ {
+ SciErr sciErr;
+
+ int nbRows = NUMBER_FIELD;
+ int nbCols = 2;
+ const char *currentEol = getCsvDefaultEOL();
+
+ arrayOut[0] = strdup(SEPARATOR_FIELDNAME);
+ arrayOut[1] = strdup(DECIMAL_FIELDNAME);
+ arrayOut[2] = strdup(CONVERSION_FIELDNAME);
+ arrayOut[3] = strdup(PRECISION_FIELDNAME);
+ arrayOut[4] = strdup(COMMENTSREGEXP_FIELDNAME);
+ arrayOut[5] = strdup(EOL_FIELDNAME);
+ arrayOut[6] = strdup(ENCODING_FIELDNAME);
+ arrayOut[7] = strdup(BLANK_FIELDNAME);
+
+ arrayOut[8] = strdup(getCsvDefaultSeparator());
+ arrayOut[9] = strdup(getCsvDefaultDecimal());
+ arrayOut[10] = strdup(getCsvDefaultConversion());
+ arrayOut[11] = strdup(getCsvDefaultPrecision());
+ arrayOut[12] = strdup(getCsvDefaultCommentsRegExp());
+
+ if (currentEol)
+ {
+ if (strcmp(currentEol, MACOS9_EOL) == 0)
+ {
+ arrayOut[13] = strdup(MACOS9_EOL_STRING);
+ }
+ else if (strcmp(currentEol, WINDOWS_EOL) == 0)
+ {
+ arrayOut[13] = strdup(WINDOWS_EOL_STRING);
+ }
+ else if (strcmp(currentEol, LINUX_EOL) == 0)
+ {
+ arrayOut[13] = strdup(LINUX_EOL_STRING);
+ }
+ else
+ {
+ arrayOut[13] = strdup("ERROR");
+ }
+ }
+ else
+ {
+ arrayOut[13] = strdup("ERROR");
+ }
+
+ arrayOut[14] = strdup(getCsvDefaultEncoding());
+ arrayOut[15] = strdup(getCsvDefaultCsvIgnoreBlankLine());
+
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, nbRows, nbCols, arrayOut);
+ freeArrayOfString(arrayOut, sizeArray);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ return 0;
+}
+// =============================================================================
+static int sci_csvDefault_one_rhs(char *fname)
+{
+ int iErr = 0;
+
+ char *fieldname = NULL;
+ char *fieldvalue = NULL;
+
+ fieldname = csv_getArgumentAsString(pvApiCtx, 1, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+
+ if (strcmp(fieldname, SEPARATOR_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultSeparator());
+ }
+ else if (strcmp(fieldname, DECIMAL_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultDecimal());
+ }
+ else if (strcmp(fieldname, CONVERSION_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultConversion());
+ }
+ else if (strcmp(fieldname, PRECISION_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultPrecision());
+ }
+ else if (strcmp(fieldname, COMMENTSREGEXP_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultCommentsRegExp());
+ }
+ else if (strcmp(fieldname, EOL_FIELDNAME) == 0)
+ {
+ const char *currentEol = getCsvDefaultEOL();
+ if (currentEol)
+ {
+ if (strcmp(currentEol, MACOS9_EOL) == 0)
+ {
+ fieldvalue = strdup(MACOS9_EOL_STRING);
+ }
+ else if (strcmp(currentEol, WINDOWS_EOL) == 0)
+ {
+ fieldvalue = strdup(WINDOWS_EOL_STRING);
+ }
+ else if (strcmp(currentEol, LINUX_EOL) == 0)
+ {
+ fieldvalue = strdup(LINUX_EOL_STRING);
+ }
+ else
+ {
+ fieldvalue = strdup("ERROR");
+ }
+ }
+ else
+ {
+ fieldvalue = strdup("ERROR");
+ }
+ }
+ else if (strcmp(fieldname, ENCODING_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultEncoding());
+ }
+ else if (strcmp(fieldname, BLANK_FIELDNAME) == 0)
+ {
+ fieldvalue = strdup(getCsvDefaultCsvIgnoreBlankLine());
+ }
+ else if (strcmp(fieldname, RESET_PARAMATERS) == 0)
+ {
+ freeVar(&fieldname, &fieldvalue);
+
+ setCsvDefaultReset();
+
+ createEmptyMatrix(pvApiCtx, Rhs + 1);
+
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+ return 0;
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s', '%s', '%s', '%s', '%s' or '%s' expected.\n"), fname, 1, SEPARATOR_FIELDNAME, DECIMAL_FIELDNAME, CONVERSION_FIELDNAME, COMMENTSREGEXP_FIELDNAME, EOL_FIELDNAME, BLANK_FIELDNAME);
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+
+ createSingleString(pvApiCtx, Rhs + 1, fieldvalue);
+
+ freeVar(&fieldname, &fieldvalue);
+
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+
+ return 0;
+}
+// =============================================================================
+static int sci_csvDefault_two_rhs(char *fname)
+{
+ int iErr = 0;
+ int resultSet = 0;
+
+ char *fieldname = NULL;
+ char *fieldvalue = NULL;
+ int ifieldvalue = 0;
+
+ fieldname = csv_getArgumentAsString(pvApiCtx, 1, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+
+ if (strcmp(fieldname, PRECISION_FIELDNAME) == 0)
+ {
+ if (csv_isEmpty(pvApiCtx, 2))
+ {
+ freeVar(&fieldname, &fieldvalue);
+ Scierror(999, _("%s: Wrong type for input argument #%d: A double expected.\n"), fname, 2);
+ return 0;
+ }
+
+ if (csv_isDoubleScalar(pvApiCtx, 2))
+ {
+#define FORMAT_FIELDVALUESTR "%%.%dlg"
+ ifieldvalue = (int) csv_getArgumentAsScalarDouble(pvApiCtx, 2, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+
+ if ((ifieldvalue < 1) || (ifieldvalue > 17))
+ {
+ freeVar(&fieldname, &fieldvalue);
+ Scierror(999, _("%s: Wrong value for input argument #%d: A double (value %d to %d) expected.\n"), fname, 2, 1, 17);
+ return 0;
+ }
+
+ fieldvalue = (char*)MALLOC(sizeof(char) * ((int)strlen(FORMAT_FIELDVALUESTR) + 1));
+ if (fieldvalue == NULL)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+ sprintf(fieldvalue, FORMAT_FIELDVALUESTR, ifieldvalue);
+ }
+ else
+ {
+ fieldvalue = csv_getArgumentAsString(pvApiCtx, 2, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+ }
+ }
+ else
+ {
+ fieldvalue = csv_getArgumentAsString(pvApiCtx, 2, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+ }
+
+ if (strcmp(fieldname, SEPARATOR_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultSeparator(fieldvalue);
+ }
+ else if (strcmp(fieldname, DECIMAL_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultDecimal(fieldvalue);
+ }
+ else if (strcmp(fieldname, CONVERSION_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultConversion(fieldvalue);
+ }
+ else if (strcmp(fieldname, PRECISION_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultPrecision(fieldvalue);
+ }
+ else if (strcmp(fieldname, COMMENTSREGEXP_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultCommentsRegExp(fieldvalue);
+ }
+ else if (strcmp(fieldname, EOL_FIELDNAME) == 0)
+ {
+ if (strcmp(fieldvalue, MACOS9_EOL_STRING) == 0)
+ {
+ resultSet = setCsvDefaultEOL(MACOS9_EOL);
+ }
+ else if (strcmp(fieldvalue, WINDOWS_EOL_STRING) == 0)
+ {
+ resultSet = setCsvDefaultEOL(WINDOWS_EOL);
+ }
+ else if (strcmp(fieldvalue, LINUX_EOL_STRING) == 0)
+ {
+ resultSet = setCsvDefaultEOL(LINUX_EOL);
+ }
+ else
+ {
+ resultSet = 1;
+ }
+ }
+ else if (strcmp(fieldname, ENCODING_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultEncoding(fieldvalue);
+ }
+ else if (strcmp(fieldname, BLANK_FIELDNAME) == 0)
+ {
+ resultSet = setCsvDefaultCsvIgnoreBlankLine(fieldvalue);
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s', '%s', '%s' , '%s', '%s', '%s', '%s' or '%s' expected.\n"), fname, 1, SEPARATOR_FIELDNAME, DECIMAL_FIELDNAME, CONVERSION_FIELDNAME, PRECISION_FIELDNAME, COMMENTSREGEXP_FIELDNAME, EOL_FIELDNAME, ENCODING_FIELDNAME, BLANK_FIELDNAME);
+ freeVar(&fieldname, &fieldvalue);
+ return 0;
+ }
+
+ createScalarBoolean(pvApiCtx, Rhs + 1, (resultSet == 0));
+
+ freeVar(&fieldname, &fieldvalue);
+
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+
+ return 0;
+}
+// =============================================================================
+static void freeVar(char** fieldname, char** fieldvalue)
+{
+ if (fieldname && *fieldname)
+ {
+ FREE(*fieldname);
+ *fieldname = NULL;
+ }
+
+ if (fieldvalue && *fieldvalue)
+ {
+ FREE(*fieldvalue);
+ *fieldvalue = NULL;
+ }
+} \ No newline at end of file
diff --git a/modules/spreadsheet/sci_gateway/c/sci_csvRead.c b/modules/spreadsheet/sci_gateway/c/sci_csvRead.c
new file mode 100755
index 000000000..317aef798
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_csvRead.c
@@ -0,0 +1,546 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include "gw_spreadsheet.h"
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#include "MALLOC.h"
+#include "csvRead.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "stringToComplex.h"
+#include "csvDefault.h"
+#include "complex_array.h"
+#include "gw_csv_helpers.h"
+#include "getRange.h"
+
+static void freeVar(char** filename, char** separator, char** decimal, char** conversion, int** iRange, char*** toreplace, int sizeReplace, char** regexp);
+/* ==================================================================== */
+#define CONVTOSTR "string"
+#define CONVTODOUBLE "double"
+/* ==================================================================== */
+/* csvRead(filename, separator, decimal, conversion, substitute, range)*/
+/* ==================================================================== */
+int sci_csvRead(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+ int iErr = 0;
+ int iErrEmpty = 0;
+
+ char *filename = NULL;
+ char *separator = NULL;
+ char *decimal = NULL;
+ char *conversion = NULL;
+ int *iRange = NULL;
+ int haveRange = 0;
+ int header = 0;
+
+ char **toreplace = NULL;
+ int nbElementsToReplace = 0;
+
+ char *regexp = NULL;
+ int haveRegexp = 0;
+
+ csvResult *result = NULL;
+
+ double *dRealValues = NULL;
+
+ sciErr.iErr = 0;
+
+ CheckRhs(1, 8);
+ CheckLhs(1, 2);
+
+ if (Rhs == 8)
+ {
+ header = (int) csv_getArgumentAsScalarDouble(pvApiCtx, 8, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ return 0;
+ }
+ }
+
+ if (Rhs == 7)
+ {
+ int m7 = 0, n7 = 0;
+
+ iRange = csv_getArgumentAsMatrixofIntFromDouble(pvApiCtx, 7, fname, &m7, &n7, &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ return 0;
+ }
+
+ if ((m7 * n7 != SIZE_RANGE_SUPPORTED) )
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ Scierror(999, _("%s: Wrong size for input argument #%d: Four entries expected.\n"), fname, 7);
+ return 0;
+ }
+
+ if ((m7 != 1) && (n7 != 1))
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ Scierror(999, _("%s: Wrong size for input argument #%d: A column or row vector expected.\n"), fname, 7);
+ return 0;
+ }
+
+ if (isValidRange(iRange, m7 * n7))
+ {
+ haveRange = 1;
+ }
+ else
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ Scierror(999, _("%s: Wrong value for input argument #%d: Inconsistent range.\n"), fname, 7);
+ return 0;
+ }
+ }
+
+
+ if (Rhs >= 6)
+ {
+ regexp = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 6, fname, getCsvDefaultCommentsRegExp(), &iErr);
+ if (regexp)
+ {
+ if (strcmp(regexp, "") == 0)
+ {
+ FREE(regexp);
+ regexp = NULL;
+ }
+ else
+ {
+ haveRegexp = 1;
+ }
+ }
+
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, 0, &regexp);
+ return 0;
+ }
+ }
+ else
+ {
+ regexp = strdup(getCsvDefaultCommentsRegExp());
+ if (regexp)
+ {
+ if (strcmp(regexp, "") == 0)
+ {
+ FREE(regexp);
+ regexp = NULL;
+ }
+ }
+ }
+
+ if (Rhs >= 5)
+ {
+ if (csv_isEmpty(pvApiCtx, 5))
+ {
+ toreplace = NULL;
+ nbElementsToReplace = 0;
+ }
+ else
+ {
+ int m5 = 0, n5 = 0;
+ toreplace = csv_getArgumentAsMatrixOfString(pvApiCtx, 5, fname, &m5, &n5, &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, m5 * n5, &regexp);
+ return 0;
+ }
+
+ if (n5 != 2)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, m5 * n5, &regexp);
+ Scierror(999, _("%s: Wrong size for input argument #%d.\n"), fname, 5);
+ return 0;
+ }
+ nbElementsToReplace = m5;
+ }
+ }
+ else
+ {
+ toreplace = NULL;
+ nbElementsToReplace = 0;
+ }
+
+ if (Rhs >= 4)
+ {
+ int iErr = 0;
+ conversion = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 4, fname, getCsvDefaultConversion(), &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+
+ if (!((strcmp(conversion, CONVTOSTR) == 0) || (strcmp(conversion, CONVTODOUBLE) == 0)))
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"), fname, 4, "double", "string");
+ return 0;
+ }
+ }
+ else
+ {
+ /* read_csv is using a 'string' conversion while csvRead is doing
+ a 'double' conversion */
+ if (strcmp(fname, "read_csv") == 0)
+ {
+ conversion = (char*)MALLOC((strlen("string") + 1) * sizeof(char));
+ strcpy(conversion, "string");
+ }
+ else
+ {
+ conversion = strdup(getCsvDefaultConversion());
+ }
+ }
+
+ if (Rhs >= 3)
+ {
+ int iErr = 0;
+ decimal = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 3, fname, getCsvDefaultDecimal(), &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ }
+ else
+ {
+ decimal = strdup(getCsvDefaultDecimal());
+ }
+
+ if (Rhs >= 2)
+ {
+ int iErr = 0;
+ separator = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 2, fname, getCsvDefaultSeparator(), &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ }
+ else
+ {
+ separator = strdup(getCsvDefaultSeparator());
+ }
+
+ if (strcmp(separator, "\\t") == 0)
+ {
+ /* In Scilab, if the user is providing \t as separator, transform it to a real
+ tab. Example: read_csv(filename,"\t");
+ */
+ strcpy(separator, "\t");
+ }
+
+
+ filename = csv_getArgumentAsString(pvApiCtx, 1, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+
+ result = csvRead(filename, separator, decimal, (const char**)toreplace, nbElementsToReplace * 2, regexp, header);
+ freeVar(NULL, &separator, &decimal, NULL, NULL, &toreplace, nbElementsToReplace, &regexp);
+
+ if (result)
+ {
+ switch (result->err)
+ {
+ case CSV_READ_REGEXP_ERROR:
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d.\n"), fname, 6);
+ }
+ break;
+
+ case CSV_READ_SEPARATOR_DECIMAL_EQUAL:
+ {
+ Scierror(999, _("%s: separator and decimal must have different values.\n"), fname);
+ }
+ break;
+
+ case CSV_READ_NO_ERROR:
+ {
+ if (strcmp(conversion, CONVTOSTR) == 0)
+ {
+ if (haveRange)
+ {
+ int newM = 0;
+ int newN = 0;
+
+ char **pStrRange = getRangeAsString((const char**)result->pstrValues, result->m, result->n, iRange, &newM, &newN);
+ if (pStrRange)
+ {
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, newM, newN, pStrRange);
+ freeArrayOfString(pStrRange, newM * newN);
+ }
+ else
+ {
+ if ((newM == 0) || (newN == 0))
+ {
+ Scierror(999, _("%s: Range row or/and column left indice(s) out of bounds.\n"), fname);
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ }
+ else
+ {
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, result->m, result->n, result->pstrValues);
+ }
+ }
+ else /* to double */
+ {
+ stringToComplexError ierr = STRINGTOCOMPLEX_ERROR;
+ complexArray *ptrComplexArray = stringsToComplexArray((const char**)result->pstrValues, result->m * result->n, decimal, TRUE, &ierr);
+
+ if (ptrComplexArray == NULL)
+ {
+ freeCsvResult(result);
+ if (ierr == STRINGTOCOMPLEX_ERROR)
+ {
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+
+ switch (ierr)
+ {
+ case STRINGTOCOMPLEX_NOT_A_NUMBER:
+ case STRINGTOCOMPLEX_NO_ERROR:
+ {
+ if (haveRange)
+ {
+ int newM = 0;
+ int newN = 0;
+ complexArray *complexRange = getRangeAsComplexArray(ptrComplexArray, result->m, result->n, iRange, &newM, &newN);
+ if (complexRange)
+ {
+ if (complexRange->isComplex)
+ {
+ sciErr = createComplexMatrixOfDouble(pvApiCtx, Rhs + 1, newM, newN, ptrComplexArray->realPart, ptrComplexArray->imagPart);
+ }
+ else
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, newM, newN, complexRange->realPart);
+ }
+ freeComplexArray(complexRange);
+ complexRange = NULL;
+ }
+ else
+ {
+ if ((newM == 0) || (newN == 0))
+ {
+ Scierror(999, _("%s: Range row or/and column left indice(s) out of bounds.\n"), fname);
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ }
+ else
+ {
+ if (ptrComplexArray->isComplex)
+ {
+ sciErr = createComplexMatrixOfDouble(pvApiCtx, Rhs + 1, result->m, result->n, ptrComplexArray->realPart, ptrComplexArray->imagPart);
+ }
+ else
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, result->m, result->n, ptrComplexArray->realPart);
+ }
+ freeComplexArray(ptrComplexArray);
+ ptrComplexArray = NULL;
+ }
+ }
+ break;
+
+ case STRINGTOCOMPLEX_MEMORY_ALLOCATION:
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ default:
+ case STRINGTOCOMPLEX_ERROR:
+ {
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ }
+ }
+
+ if (sciErr.iErr)
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ else
+ {
+ LhsVar(1) = Rhs + 1;
+
+ if (Lhs == 2)
+ {
+ if (haveRegexp == 0)
+ {
+ char **emptyStringMatrix = NULL;
+ emptyStringMatrix = (char**) malloc(sizeof(char*));
+ emptyStringMatrix[0] = "";
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 2, 1, 1, emptyStringMatrix);
+ free(emptyStringMatrix);
+ }
+ else
+ {
+ if (result->nbComments > 0)
+ {
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 2, result->nbComments, 1, result->pstrComments);
+ }
+ else
+ {
+ iErrEmpty = createEmptyMatrix(pvApiCtx, Rhs+2);
+ sciErr.iErr = iErrEmpty;
+ }
+ }
+ if (sciErr.iErr)
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ freeCsvResult(result);
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+ return 0;
+ }
+ LhsVar(2) = Rhs + 2;
+ }
+ PutLhsVar();
+ }
+ }
+ break;
+
+ case CSV_READ_FILE_NOT_EXIST:
+ {
+ Scierror(999, _("%s: %s does not exist.\n"), fname, filename);
+ }
+ break;
+
+ case CSV_READ_MOPEN_ERROR:
+ {
+ Scierror(999, _("%s: can not open file %s.\n"), fname, filename);
+ }
+ break;
+
+ case CSV_READ_MEMORY_ALLOCATION:
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ break;
+
+ case CSV_READ_COLUMNS_ERROR:
+ {
+ Scierror(999, _("%s: can not read file %s: Error in the column structure\n"), fname, filename);
+ }
+ break;
+
+ case CSV_READ_READLINES_ERROR:
+ case CSV_READ_ERROR:
+ {
+ Scierror(999, _("%s: can not read file %s.\n"), fname, filename);
+ }
+ break;
+ }
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ freeCsvResult(result);
+
+ freeVar(&filename, &separator, &decimal, &conversion, &iRange, &toreplace, nbElementsToReplace, &regexp);
+
+ return 0;
+}
+/* ==================================================================== */
+static void freeVar(char** filename, char** separator, char** decimal, char** conversion, int** iRange, char*** toreplace, int sizeReplace, char** regexp)
+{
+ if (filename && *filename)
+ {
+ FREE(*filename);
+ *filename = NULL;
+ }
+
+ if (separator && *separator)
+ {
+ FREE(*separator);
+ *separator = NULL;
+ }
+
+ if (decimal && *decimal)
+ {
+ FREE(*decimal);
+ *decimal = NULL;
+ }
+
+ if (conversion && *conversion)
+ {
+ FREE(*conversion);
+ *conversion = NULL;
+ }
+
+ if (iRange && *iRange)
+ {
+ FREE(*iRange);
+ *iRange = NULL;
+ }
+
+ if (toreplace && *toreplace)
+ {
+ freeArrayOfString(*toreplace, sizeReplace);
+ *toreplace = NULL;
+ }
+
+ if (regexp && *regexp)
+ {
+ FREE(*regexp);
+ *regexp = NULL;
+ }
+}
diff --git a/modules/spreadsheet/sci_gateway/c/sci_csvStringToDouble.c b/modules/spreadsheet/sci_gateway/c/sci_csvStringToDouble.c
new file mode 100755
index 000000000..953013e3b
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_csvStringToDouble.c
@@ -0,0 +1,129 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+#include <string.h>
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "stringToComplex.h"
+#include "csvDefault.h"
+#include "gw_csv_helpers.h"
+#include "complex_array.h"
+
+// =============================================================================
+int sci_csvStringToDouble(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+ int iErr = 0;
+ int m1 = 0, n1 = 0;
+ char **pStringValues = NULL;
+
+ BOOL bConvertToNan = TRUE;
+
+ complexArray *ptrComplexArray = NULL;
+ stringToComplexError ierr = STRINGTOCOMPLEX_ERROR;
+
+ CheckRhs(1, 2);
+ CheckLhs(1, 1);
+
+ if (Rhs == 1)
+ {
+ bConvertToNan = TRUE;
+ }
+ else /* Rhs == 2 */
+ {
+ bConvertToNan = (BOOL)csv_getArgumentAsScalarBoolean(pvApiCtx, 2, fname, &iErr);
+ if (iErr)
+ {
+ return 0;
+ }
+ }
+
+ pStringValues = csv_getArgumentAsMatrixOfString(pvApiCtx, 1, fname, &m1, &n1, &iErr);
+ if (iErr)
+ {
+ return 0;
+ }
+
+ ptrComplexArray = stringsToComplexArray((const char**)pStringValues, m1 * n1, getCsvDefaultDecimal(), bConvertToNan, &ierr);
+
+ freeArrayOfString(pStringValues, m1 * n1);
+ pStringValues = NULL;
+
+ if (ptrComplexArray == NULL)
+ {
+ switch (ierr)
+ {
+ case STRINGTOCOMPLEX_NOT_A_NUMBER:
+ case STRINGTOCOMPLEX_ERROR:
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ return 0;
+
+ default:
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+ }
+
+ switch (ierr)
+ {
+ case STRINGTOCOMPLEX_NOT_A_NUMBER:
+ case STRINGTOCOMPLEX_NO_ERROR:
+ {
+ if (ptrComplexArray->isComplex)
+ {
+ sciErr = createComplexMatrixOfDouble(pvApiCtx, Rhs + 1, m1, n1, ptrComplexArray->realPart, ptrComplexArray->imagPart);
+ }
+ else
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, m1, n1, ptrComplexArray->realPart);
+ }
+ freeComplexArray(ptrComplexArray);
+ ptrComplexArray = NULL;
+ }
+ break;
+
+ case STRINGTOCOMPLEX_MEMORY_ALLOCATION:
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ break;
+
+ default:
+ case STRINGTOCOMPLEX_ERROR:
+ {
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ }
+ }
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ }
+ else
+ {
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+ }
+
+ return 0;
+}
+// =============================================================================
+
diff --git a/modules/spreadsheet/sci_gateway/c/sci_csvTextScan.c b/modules/spreadsheet/sci_gateway/c/sci_csvTextScan.c
new file mode 100755
index 000000000..8672e2bc3
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_csvTextScan.c
@@ -0,0 +1,374 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+#include <string.h>
+#include "gw_spreadsheet.h"
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "stringToComplex.h"
+#include "csvDefault.h"
+#include "csvRead.h"
+#include "getRange.h"
+#include "gw_csv_helpers.h"
+
+static void freeVar(char*** text, int sizeText, int** lengthText, char** separator, char** decimal, char** conversion, int** iRange);
+// =============================================================================
+#define CONVTOSTR "string"
+#define CONVTODOUBLE "double"
+// =============================================================================
+int sci_csvTextScan(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+ int iErr = 0;
+ int i = 0;
+
+ int *piAddressVarOne = NULL;
+ int m1 = 0, n1 = 0;
+ int iType1 = 0;
+
+ char **text = NULL;
+ int *lengthText = NULL;
+ int nbLines = 0;
+
+ char *separator = NULL;
+ char *decimal = NULL;
+ char *conversion = NULL;
+
+ double * dRealValues = NULL;
+
+ int *iRange = NULL;
+ int haveRange = 0;
+
+ csvResult *result = NULL;
+
+ CheckRhs(1, 5);
+ CheckLhs(1, 1);
+
+ if (Rhs == 5)
+ {
+ int m5 = 0, n5 = 0;
+
+ iRange = csv_getArgumentAsMatrixofIntFromDouble(pvApiCtx, 5, fname, &m5, &n5, &iErr);
+ if (iErr)
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+ }
+
+ if ((m5 * n5 != SIZE_RANGE_SUPPORTED) )
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong size for input argument #%d: Four entries expected.\n"), fname, 5);
+ return 0;
+ }
+
+ if ((m5 != 1) && (n5 != 1))
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong size for input argument #%d: A column or row vector expected.\n"), fname, 5);
+ return 0;
+ }
+
+ if (isValidRange(iRange, m5 * n5))
+ {
+ haveRange = 1;
+ }
+ else
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong value for input argument #%d: Inconsistent range.\n"), fname, 5);
+ return 0;
+ }
+ }
+
+ if (Rhs >= 4)
+ {
+ conversion = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 4, fname, getCsvDefaultConversion(), &iErr);
+ if (iErr)
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+ }
+
+ if (!((strcmp(conversion, CONVTOSTR) == 0) || (strcmp(conversion, CONVTODOUBLE) == 0)))
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"), fname, 4, "double", "string");
+ return 0;
+ }
+ }
+ else
+ {
+ conversion = strdup(getCsvDefaultConversion());
+ }
+
+ if (Rhs >= 3)
+ {
+ decimal = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 3, fname, getCsvDefaultDecimal(), &iErr);
+ if (iErr)
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+ }
+
+ if (decimal[0] != '.' && decimal[0] != ',')
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' string expected.\n"), fname, 3, ",", ".");
+ return 0;
+ }
+ }
+ else
+ {
+ decimal = strdup(getCsvDefaultDecimal());
+ }
+
+ if (Rhs >= 2)
+ {
+ separator = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 2, fname, getCsvDefaultSeparator(), &iErr);
+ if (iErr)
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+ }
+ }
+ else
+ {
+ separator = strdup(getCsvDefaultSeparator());
+ }
+
+ if (!csv_isRowVector(pvApiCtx, 1) &&
+ !csv_isColumnVector(pvApiCtx, 1) &&
+ !csv_isScalar(pvApiCtx, 1))
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ Scierror(999, _("%s: Wrong size for input argument #%d: String vector expected.\n"), fname, 1);
+ return 0;
+ }
+
+ text = csv_getArgumentAsMatrixOfString(pvApiCtx, 1, fname, &m1, &n1, &iErr);
+ if (iErr)
+ {
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+ }
+
+ nbLines = m1 * n1;
+ result = csvTextScan((const char**)text, nbLines, separator, decimal);
+
+ if (result)
+ {
+ switch (result->err)
+ {
+ case CSV_READ_SEPARATOR_DECIMAL_EQUAL:
+ {
+ Scierror(999, _("%s: separator and decimal must have different values.\n"), fname);
+ }
+ break;
+
+ case CSV_READ_NO_ERROR:
+ {
+ if (strcmp(conversion, CONVTOSTR) == 0)
+ {
+ if (haveRange)
+ {
+ int newM = 0;
+ int newN = 0;
+
+ char **pStrRange = getRangeAsString((const char**)result->pstrValues, result->m, result->n, iRange, &newM, &newN);
+ if (pStrRange)
+ {
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, newM, newN, pStrRange);
+ freeArrayOfString(pStrRange, newM * newN);
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ }
+ else
+ {
+ sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, result->m, result->n, result->pstrValues);
+ }
+ }
+ else /* to double */
+ {
+ stringToComplexError ierr = STRINGTOCOMPLEX_ERROR;
+ complexArray *ptrComplexArray = stringsToComplexArray((const char**)result->pstrValues, result->m * result->n, decimal, TRUE, &ierr);
+ if (ptrComplexArray == NULL)
+ {
+ freeCsvResult(result);
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+
+ if (ierr == STRINGTOCOMPLEX_ERROR)
+ {
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ return 0;
+ }
+
+ switch (ierr)
+ {
+ case STRINGTOCOMPLEX_NOT_A_NUMBER:
+ case STRINGTOCOMPLEX_NO_ERROR:
+ {
+ if (haveRange)
+ {
+ int newM = 0;
+ int newN = 0;
+ complexArray *csvComplexRange = getRangeAsComplexArray(ptrComplexArray, result->m, result->n, iRange, &newM, &newN);
+ if (csvComplexRange)
+ {
+ if (csvComplexRange->isComplex)
+ {
+ sciErr = createComplexMatrixOfDouble(pvApiCtx, Rhs + 1, newM, newN, ptrComplexArray->realPart, ptrComplexArray->imagPart);
+ }
+ else
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, newM, newN, csvComplexRange->realPart);
+ }
+ freeComplexArray(csvComplexRange);
+ csvComplexRange = NULL;
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ }
+ else
+ {
+ if (ptrComplexArray->isComplex)
+ {
+ sciErr = createComplexMatrixOfDouble(pvApiCtx, Rhs + 1, result->m, result->n, ptrComplexArray->realPart, ptrComplexArray->imagPart);
+ }
+ else
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, result->m, result->n, ptrComplexArray->realPart);
+ }
+ }
+ freeComplexArray(ptrComplexArray);
+ ptrComplexArray = NULL;
+ }
+ break;
+
+ case STRINGTOCOMPLEX_MEMORY_ALLOCATION:
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ break;
+
+ default:
+ case STRINGTOCOMPLEX_ERROR:
+ {
+ Scierror(999, _("%s: can not convert data.\n"), fname);
+ }
+ break;
+ }
+ }
+
+ freeCsvResult(result);
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(17, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+ else
+ {
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+ }
+ }
+ break;
+
+ case CSV_READ_MEMORY_ALLOCATION:
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+ break;
+
+ case CSV_READ_COLUMNS_ERROR:
+ {
+ Scierror(999, _("%s: can not read text: Error in the column structure\n"), fname);
+ }
+ break;
+
+ case CSV_READ_READLINES_ERROR:
+ case CSV_READ_ERROR:
+ {
+ Scierror(999, _("%s: can not read text.\n"), fname);
+ }
+ break;
+ }
+ }
+ else
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ }
+
+ freeVar(&text, nbLines, &lengthText, &separator, &decimal, &conversion, &iRange);
+ return 0;
+}
+// =============================================================================
+static void freeVar(char*** text, int sizeText, int** lengthText, char** separator, char** decimal, char** conversion, int** iRange)
+{
+ if (text && *text)
+ {
+ freeArrayOfString(*text, sizeText);
+ *text = NULL;
+ }
+
+ if (lengthText && *lengthText)
+ {
+ FREE(*lengthText);
+ *lengthText = NULL;
+ }
+
+ if (separator && *separator)
+ {
+ FREE(*separator);
+ *separator = NULL;
+ }
+
+ if (decimal && *decimal)
+ {
+ FREE(*decimal);
+ *decimal = NULL;
+ }
+
+ if (conversion && *conversion)
+ {
+ FREE(*conversion);
+ *conversion = NULL;
+ }
+
+ if (iRange && *iRange)
+ {
+ FREE(*iRange);
+ *iRange = NULL;
+ }
+}
diff --git a/modules/spreadsheet/sci_gateway/c/sci_csvWrite.c b/modules/spreadsheet/sci_gateway/c/sci_csvWrite.c
new file mode 100755
index 000000000..fa50c1517
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_csvWrite.c
@@ -0,0 +1,328 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+ * Copyright (C) 2011 - INRIA - Michael Baudin
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ * This code is also published under the GPL v3 license.
+ *
+ */
+#include <string.h>
+#include <stdio.h>
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include "csvWrite.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "csvDefault.h"
+#include "checkCsvWriteFormat.h"
+#include "gw_csv_helpers.h"
+
+
+static void freeVar(char** separator, char** decimal, char** filename, char** precisionFormat, char*** pHeadersLines, int sizeHeader);
+// =============================================================================
+// csvWrite(M, filename[, separator, decimal, precision]) */
+// with M string or double (not complex)
+// =============================================================================
+int sci_csvWrite(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+ int iErr = 0;
+ csvWriteError csvError = CSV_WRITE_ERROR;
+
+ char *separator = NULL;
+ char *decimal = NULL;
+ char *filename = NULL;
+ char *precisionFormat = NULL;
+ char **pHeadersLines = NULL;
+ int nbHeadersLines = 0;
+
+ char **pStringValues = NULL;
+ double *pDoubleValuesReal = NULL;
+ double *pDoubleValuesImag = NULL;
+ int bIsComplex = 0;
+ int mValues = 0;
+ int nValues = 0;
+
+ int *piAddressVarTwo = NULL;
+ int m2 = 0, n2 = 0;
+ int iType2 = 0;
+
+ int *piAddressVarOne = NULL;
+ int m1 = 0, n1 = 0;
+ int iType1 = 0;
+
+ CheckRhs(2, 6);
+ CheckLhs(1, 1);
+
+ if (Rhs > 5)
+ {
+ int isOnlyRowOrCol = 0;
+ int m6 = 0;
+ int n6 = 0;
+ pHeadersLines = csv_getArgumentAsMatrixOfString(pvApiCtx, 6, fname, &m6, &n6, &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+ isOnlyRowOrCol = ((m6 > 1) && (n6 == 1)) || ((m6 == 1) && (n6 > 1)) || ((m6 == 1) && (n6 == 1));
+ if (!isOnlyRowOrCol)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ Scierror(999, _("%s: Wrong size for input argument #%d: A 1-by-n or m-by-1 array of strings expected.\n"), fname, 6);
+ return 0;
+ }
+ nbHeadersLines = m6 * n6;
+ }
+
+ if (Rhs > 4)
+ {
+ if (csv_isDoubleScalar(pvApiCtx, 5))
+ {
+#define FORMAT_FIELDVALUESTR "%%.%dlg"
+ int iFormatValue = (int) csv_getArgumentAsScalarDouble(pvApiCtx, 5, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+
+ if ((iFormatValue < 1) || (iFormatValue > 17))
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: A double (value 1 to 17) expected.\n"), fname, 5);
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+
+ precisionFormat = (char*)MALLOC(sizeof(char) * ((int)strlen(FORMAT_FIELDVALUESTR) + 1));
+ if (precisionFormat == NULL)
+ {
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+ sprintf(precisionFormat, FORMAT_FIELDVALUESTR, iFormatValue);
+ }
+ else
+ {
+ precisionFormat = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 5, fname, getCsvDefaultPrecision(), &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+
+ if (checkCsvWriteFormat(precisionFormat))
+ {
+ Scierror(999, _("%s: Not supported format %s.\n"), fname, precisionFormat);
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+ }
+ }
+ else
+ {
+ precisionFormat = strdup(getCsvDefaultPrecision());
+ }
+
+ if (Rhs > 3)
+ {
+ decimal = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 4, fname, getCsvDefaultDecimal(), &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+
+ if (strcmp(decimal, ".") && strcmp(decimal, ","))
+ {
+ //invalid value
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"), "write_csv", 4, ".", ",");
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 1;
+ }
+ }
+ else
+ {
+ decimal = strdup(getCsvDefaultDecimal());
+ }
+
+ if (Rhs > 2)
+ {
+ separator = csv_getArgumentAsStringWithEmptyManagement(pvApiCtx, 3, fname, getCsvDefaultSeparator(), &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+ }
+ else
+ {
+ separator = strdup(getCsvDefaultSeparator());
+ }
+
+ filename = csv_getArgumentAsString(pvApiCtx, 2, fname, &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
+ if (sciErr.iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarOne, &iType1);
+ if (sciErr.iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ if (iType1 == sci_strings)
+ {
+ pStringValues = csv_getArgumentAsMatrixOfString(pvApiCtx, 1, fname, &m1, &n1, &iErr);
+ if (iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+ }
+ }
+ else if (iType1 == sci_matrix)
+ {
+ if (isVarComplex(pvApiCtx, piAddressVarOne))
+ {
+ bIsComplex = 1;
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddressVarOne, &m1, &n1, &pDoubleValuesReal, &pDoubleValuesImag);
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarOne, &m1, &n1, &pDoubleValuesReal);
+ }
+
+ if (sciErr.iErr)
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ Scierror(999, _("%s: Wrong type for input argument #%d: A matrix of string or a matrix of real expected.\n"), fname, 1);
+ return 0;
+ }
+
+ if (pStringValues)
+ {
+ csvError = csvWrite_string(filename,
+ (const char**)pStringValues, m1, n1,
+ separator,
+ decimal,
+ (const char**)pHeadersLines, nbHeadersLines);
+ }
+ else
+ {
+ if (bIsComplex)
+ {
+ csvError = csvWrite_complex(filename,
+ pDoubleValuesReal,
+ pDoubleValuesImag,
+ m1, n1,
+ separator,
+ decimal,
+ precisionFormat,
+ (const char**)pHeadersLines, nbHeadersLines);
+ }
+ else
+ {
+ csvError = csvWrite_double(filename,
+ pDoubleValuesReal, m1, n1,
+ separator,
+ decimal,
+ precisionFormat,
+ (const char**)pHeadersLines, nbHeadersLines);
+ }
+ }
+
+ switch (csvError)
+ {
+ case CSV_WRITE_SEPARATOR_DECIMAL_EQUAL:
+ {
+ Scierror(999, _("%s: separator and decimal must have different values.\n"), fname);
+ }
+ break;
+ case CSV_WRITE_NO_ERROR:
+ {
+ LhsVar(1) = 0;
+ PutLhsVar();
+ }
+ break;
+
+ case CSV_WRITE_FOPEN_ERROR:
+ {
+ Scierror(999, _("%s: can not open file %s.\n"), fname, filename);
+ }
+ break;
+ default:
+ case CSV_WRITE_ERROR:
+ {
+ Scierror(999, _("%s: error.\n"), fname);
+ }
+ break;
+ }
+
+ freeVar(&separator, &decimal, &filename, &precisionFormat, &pHeadersLines, nbHeadersLines);
+ return 0;
+}
+// =============================================================================
+static void freeVar(char** separator, char** decimal, char** filename, char** precisionFormat, char*** pHeadersLines, int sizeHeader)
+{
+ if (separator && *separator)
+ {
+ FREE(*separator);
+ *separator = NULL;
+ }
+
+ if (decimal && *decimal)
+ {
+ FREE(*decimal);
+ *decimal = NULL;
+ }
+
+ if (filename && *filename)
+ {
+ FREE(*filename);
+ *filename = NULL;
+ }
+
+ if (precisionFormat && *precisionFormat)
+ {
+ FREE(*precisionFormat);
+ *precisionFormat = NULL;
+ }
+
+ if (pHeadersLines && *pHeadersLines)
+ {
+ freeArrayOfString(*pHeadersLines, sizeHeader);
+ *pHeadersLines = NULL;
+ }
+
+}
+
diff --git a/modules/spreadsheet/sci_gateway/c/sci_xls_open.c b/modules/spreadsheet/sci_gateway/c/sci_xls_open.c
new file mode 100755
index 000000000..8a9fe899a
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_xls_open.c
@@ -0,0 +1,250 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ * Copyright (C) 2005-2008 - INRIA - Pierrick MODE
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "stack-c.h"
+#include "gw_spreadsheet.h"
+#include "xls.h"
+#include "ole.h"
+#include "ripole.h"
+#include "expandPathVariable.h"
+#include "MALLOC.h"
+#include "mopen.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "tmpdir.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "freeArrayOfString.h"
+#include "FileExist.h"
+/*--------------------------------------------------------------------------*/
+static char *xls_basename(char *name);
+
+/*--------------------------------------------------------------------------*/
+int sci_xls_open(char *fname, unsigned long fname_len)
+{
+#undef IN
+#define max_char_xls_open 256
+ int i = 0, m1 = 0, n1 = 0, l1 = 0, l2 = 0, one = 1, fd = 0, f_swap = 0;
+ int ierr = 0, ns = 0, result = 0;
+ double res;
+ char **sst = NULL;
+ char **Sheetnames = NULL;
+ int *Abspos = NULL;
+ int nsheets = 0;
+ char *filename_IN = NULL;
+ char TMP[max_char_xls_open];
+ char* base_name = NULL;
+
+ char sep[2];
+ char *TMPDIR = NULL;
+
+#ifdef _MSC_VER
+ sep[0] = '\\';
+#else
+ sep[0] = '/';
+#endif
+ sep[1] = '\0';
+
+ CheckLhs(4, 4);
+ CheckRhs(1, 1);
+
+ if (VarType(1) != sci_strings)
+ {
+ Scierror(999, "%s: Invalid type of input argument: String expected.", fname);
+ return 0;
+ }
+
+ /* checking variable file */
+ GetRhsVar(1, STRING_DATATYPE, &m1, &n1, &l1);
+
+ filename_IN = expandPathVariable(cstk(l1));
+
+ {
+ /* bug 5615 */
+ /* remove blank characters @ the end */
+ int len = (int)strlen(filename_IN);
+ int i = 0;
+
+ if (len >= 1)
+ {
+ for (i = len - 1; i >= 0; i--)
+ {
+ if (filename_IN[i] == ' ')
+ {
+ filename_IN[i] = '\0';
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ if (!FileExist(filename_IN))
+ {
+ Scierror(999, _("The file %s does not exist.\n"), filename_IN);
+ FREE(filename_IN);
+ return 0;
+ }
+ }
+
+ TMPDIR = getTMPDIR();
+ strncpy(TMP, TMPDIR, sizeof(TMP));
+ FREE(TMPDIR);
+
+ strncat(TMP, sep, sizeof(TMP) - strlen(TMP) - 1);
+ TMP[sizeof(TMP) - 1] = '\0';
+
+ base_name = xls_basename(filename_IN);
+ strncat(TMP, base_name, sizeof(TMP) - strlen(TMP) - 1);
+ TMP[sizeof(TMP) - 1] = '\0';
+
+ result = ripole(filename_IN, TMP, 0, 0);
+ if (result != OLE_OK)
+ {
+ if (result == OLEER_NO_INPUT_FILE)
+ {
+ Scierror(999, _("The file %s does not exist.\n"), filename_IN);
+ }
+ else if (result == OLEER_NOT_OLE_FILE ||
+ result == OLEER_INSANE_OLE_FILE ||
+ result == OLEER_LOADFAT_BAD_BOUNDARY || result == OLEER_MINIFAT_READ_FAIL || result == OLEER_PROPERTIES_READ_FAIL)
+ {
+ Scierror(999, _("%s: File %s is not an ole2 file.\n"), fname, filename_IN);
+ FREE(filename_IN);
+ }
+ else if (result == -1)
+ {
+ Scierror(999, _("%s: Cannot open file %s.\n"), fname, filename_IN);
+ FREE(filename_IN);
+ }
+ return 0;
+ }
+ strcat(TMP, sep);
+ strcat(TMP, "Workbook");
+ C2F(mopen) (&fd, TMP, "rb", &f_swap, &res, &ierr);
+ if (ierr != 0)
+ {
+ Scierror(999, _("%s: There is no xls stream in the ole2 file %s.\n"), fname, filename_IN);
+ FREE(filename_IN);
+ return 0;
+ }
+
+ FREE(filename_IN);
+
+ CreateVar(Rhs + 1, MATRIX_OF_INTEGER_DATATYPE, &one, &one, &l2);
+ *istk(l2) = fd; /* logical unit */
+
+ xls_open(&ierr, &fd, &sst, &ns, &Sheetnames, &Abspos, &nsheets);
+ /*return *err:
+ * 0 = OK
+ * 1 = not an OLE file
+ * 2 = no Workbook included
+ * 3 = memory allocation problem
+ * 4 = incorrect file
+ * 5 = not a BIFF8 xls file
+ */
+ switch (ierr)
+ {
+ case 0:
+ /* OK */
+ break;
+
+ case 1:
+ Scierror(999, _("%s: Not an ole2 file.\n"), fname);
+ return 0;
+
+ case 2:
+ Scierror(999, _("%s: The file has no Workbook directory.\n"), fname);
+ return 0;
+
+ case 3:
+ Scierror(999, _("%s: No more memory.\n"), fname);
+ return 0;
+
+ case 4:
+ Scierror(990, _("%s: Incorrect or corrupted file.\n"), fname);
+ return 0;
+
+ case 5:
+ Scierror(999, _("%s: Only BIFF8 file format is handled.\n"), fname);
+ return 0;
+
+ default:
+ break;
+
+ }
+
+ if (ns != 0)
+ {
+ /* Create a typed list to return the properties */
+ CreateVarFromPtr(Rhs + 2, MATRIX_OF_STRING_DATATYPE, &one, &ns, sst);
+ freeArrayOfString(sst, ns);
+ }
+ else
+ {
+ CreateVar(Rhs + 2, MATRIX_OF_DOUBLE_DATATYPE, &ns, &ns, &l2);
+ }
+
+ if (nsheets != 0)
+ {
+ /* Create a typed list to return the properties */
+ CreateVarFromPtr(Rhs + 3, MATRIX_OF_STRING_DATATYPE, &one, &nsheets, Sheetnames);
+ freeArrayOfString(Sheetnames, nsheets);
+
+ CreateVar(Rhs + 4, MATRIX_OF_DOUBLE_DATATYPE, &one, &nsheets, &l2);
+ for (i = 0; i < nsheets; i++)
+ {
+ *stk(l2 + i) = Abspos[i];
+ }
+ if (Abspos)
+ {
+ FREE(Abspos);
+ Abspos = NULL;
+ }
+ }
+ else
+ {
+ CreateVar(Rhs + 3, MATRIX_OF_DOUBLE_DATATYPE, &nsheets, &nsheets, &l2);
+ CreateVar(Rhs + 4, MATRIX_OF_DOUBLE_DATATYPE, &nsheets, &nsheets, &l2);
+ }
+
+ LhsVar(1) = Rhs + 1;
+ LhsVar(2) = Rhs + 2;
+ LhsVar(3) = Rhs + 3;
+ LhsVar(4) = Rhs + 4;
+
+ PutLhsVar();
+
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+static char *xls_basename(char *name)
+{
+ char *base = NULL;
+
+#ifdef _MSC_VER
+ base = strrchr(name, '\\');
+#else
+ base = strrchr(name, '/');
+#endif
+ return base ? base + 1 : name;
+}
+
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/sci_gateway/c/sci_xls_read.c b/modules/spreadsheet/sci_gateway/c/sci_xls_read.c
new file mode 100755
index 000000000..34f17f058
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/c/sci_xls_read.c
@@ -0,0 +1,99 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ * Copyright (C) 2005-2008 - INRIA - Pierrick MODE
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "stack-c.h"
+#include "gw_spreadsheet.h"
+#include "xls.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "MALLOC.h"
+/*--------------------------------------------------------------------------*/
+int sci_xls_read(char *fname, unsigned long fname_len)
+{
+ int m1 = 0, n1 = 0, l1 = 0, zero = 0, ierr = 0;
+ double *data = NULL;
+ int *ind = NULL;
+ int M = 0, N = 0, MN = 0;
+ int pos = 0, fd = 0;
+
+ CheckLhs(2, 2);
+ CheckRhs(2, 2);
+
+ if (VarType(1) != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: Scalar expected.\n"), fname, 1);
+ return 0;
+ }
+
+ if (VarType(2) != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: Scalar expected.\n"), fname, 2);
+ return 0;
+ }
+
+
+ /* checking variable fd */
+ GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+ fd = (int) * stk(l1);
+ /* checking variable Pos */
+ GetRhsVar(2, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+ pos = (int) * stk(l1);
+
+ xls_read(&fd, &pos, &data, &ind, &N, &M, &ierr);
+
+ switch (ierr)
+ {
+ case 1 :
+ Scierror(999, _("%s: No more memory.\n"), fname);
+ return 0;
+ break;
+ case 2 :
+ Scierror(999, _("%s: Failed to read expected data, may be invalid xls file.\n"), fname);
+ return 0;
+ break;
+ case 3 :
+ Scierror(999, _("%s: End of file.\n"), fname);
+ return 0;
+ break;
+ default :
+ /* no error */
+ break;
+ }
+
+ MN = M * N;
+
+ if (MN == 0)
+ {
+ CreateVar(Rhs + 1, MATRIX_OF_DOUBLE_DATATYPE, &zero, &zero, &l1);
+ CreateVar(Rhs + 2, MATRIX_OF_DOUBLE_DATATYPE, &zero, &zero, &l1);
+ }
+ else
+ {
+ CreateVarFromPtr(Rhs + 1, MATRIX_OF_DOUBLE_DATATYPE, &N, &M, &data);
+ CreateVarFromPtr(Rhs + 2, MATRIX_OF_INTEGER_DATATYPE, &N, &M, &ind);
+ FREE(data);
+ data = NULL;
+ FREE(ind);
+ ind = NULL;
+ }
+ LhsVar(1) = Rhs + 1;
+ LhsVar(2) = Rhs + 2;
+ PutLhsVar();
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/sci_gateway/spreadsheet_gateway.xml b/modules/spreadsheet/sci_gateway/spreadsheet_gateway.xml
new file mode 100755
index 000000000..7a70f7784
--- /dev/null
+++ b/modules/spreadsheet/sci_gateway/spreadsheet_gateway.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<!--
+ Scilab Interface description. In this file, we define the list of the function which
+ will be available into Scilab and the link to the "native" function.
+
+ gatewayId is the position in the hashtable 'Interfaces' defined in the
+ file SCI/modules/core/src/c/callinterf.h
+
+ primitiveId is the position in the hashtable '<module>Table Tab[]' defined
+ in the file modules/<module>/sci_gateway/c/gw_<module>.c
+
+ primitiveName is the name of the Scilab function
+
+ Don't touch if you do not know what you are doing
+-->
+
+<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
+<GATEWAY name="spreadsheet">
+ <PRIMITIVE gatewayId="56" primitiveId="1" primitiveName="xls_open" />
+ <PRIMITIVE gatewayId="56" primitiveId="2" primitiveName="xls_read" />
+ <PRIMITIVE gatewayId="56" primitiveId="3" primitiveName="csvDefault" />
+ <PRIMITIVE gatewayId="56" primitiveId="4" primitiveName="csvRead" />
+ <PRIMITIVE gatewayId="56" primitiveId="5" primitiveName="csvStringToDouble" />
+ <PRIMITIVE gatewayId="56" primitiveId="6" primitiveName="csvTextScan" />
+ <PRIMITIVE gatewayId="56" primitiveId="7" primitiveName="csvWrite" />
+ <PRIMITIVE gatewayId="56" primitiveId="8" primitiveName="write_csv" />
+ <PRIMITIVE gatewayId="56" primitiveId="9" primitiveName="read_csv" />
+</GATEWAY>
diff --git a/modules/spreadsheet/spreadsheet.iss b/modules/spreadsheet/spreadsheet.iss
new file mode 100755
index 000000000..1c7a5e7b6
--- /dev/null
+++ b/modules/spreadsheet/spreadsheet.iss
@@ -0,0 +1,44 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) INRIA - Allan CORNET
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; This file must be used under the terms of the CeCILL.
+; This source file is licensed as described in the file COPYING, which
+; you should have received as part of this distribution. The terms
+; are also available at
+; http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+;
+;--------------------------------------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;--------------------------------------------------------------------------------------------------------------
+; spreadsheet module
+;--------------------------------------------------------------------------------------------------------------
+;
+#define SPREADSHEET "spreadsheet"
+;
+Source: bin\{#SPREADSHEET}.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\license.txt; DestDir: {app}\modules\{#SPREADSHEET}; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\sci_gateway\{#SPREADSHEET}_gateway.xml; DestDir: {app}\modules\{#SPREADSHEET}\sci_gateway; Components: {#COMPN_SCILAB}
+;
+;Source: modules\{#SPREADSHEET}\includes\*.h; DestDir: {app}\modules\{#SPREADSHEET}\includes; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\etc\{#SPREADSHEET}.quit; DestDir: {app}\modules\{#SPREADSHEET}\etc; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\etc\{#SPREADSHEET}.start; DestDir: {app}\modules\{#SPREADSHEET}\etc; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\macros\buildmacros.sce; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\buildmacros.bat; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\cleanmacros.bat; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\*.bin; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\*.sci; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\lib; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SPREADSHEET}\macros\names; DestDir: {app}\modules\{#SPREADSHEET}\macros; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\demos\*.*; DestDir: {app}\modules\{#SPREADSHEET}\demos; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SPREADSHEET}\tests\*.*; DestDir: {app}\modules\{#SPREADSHEET}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS}
+;
+;--------------------------------------------------------------------------------------------------------------
diff --git a/modules/spreadsheet/spreadsheet.vcxproj b/modules/spreadsheet/spreadsheet.vcxproj
new file mode 100755
index 000000000..13b68dc90
--- /dev/null
+++ b/modules/spreadsheet/spreadsheet.vcxproj
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CE521770-0466-4743-B9F6-38F8AEB93888}</ProjectGuid>
+ <RootNamespace>spreadsheet</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>includes;src/c/ripole;src/c;sci_gateway/cpp;src/cpp;../core/includes;../fileio/includes;../io/includes;../windows_tools/includes;../output_stream/includes;../localization/includes;../../libs/intl;../api_scilab/includes;../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>includes;src/c/ripole;src/c;sci_gateway/cpp;src/cpp;../core/includes;../fileio/includes;../io/includes;../windows_tools/includes;../output_stream/includes;../localization/includes;../../libs/intl;../api_scilab/includes;../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>includes;src/c/ripole;src/c;sci_gateway/cpp;src/cpp;../core/includes;../fileio/includes;../io/includes;../windows_tools/includes;../output_stream/includes;../localization/includes;../../libs/intl;../api_scilab/includes;../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>includes;src/c/ripole;src/c;sci_gateway/cpp;src/cpp;../core/includes;../fileio/includes;../io/includes;../windows_tools/includes;../output_stream/includes;../localization/includes;../../libs/intl;../api_scilab/includes;../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ResourceCompile Include="src\c\spreadsheet.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="core_import.def" />
+ <None Include="locales\spreadsheet.pot" />
+ <None Include="Makefile.am" />
+ <None Include="spreadsheet.iss" />
+ <None Include="sci_gateway\spreadsheet_gateway.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\api_scilab\api_scilab.vcxproj">
+ <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\core\src\c\core.vcxproj">
+ <Project>{c6e2bc17-34d8-46e4-85f3-6293cb21adcd}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\fileio\fileio.vcxproj">
+ <Project>{4fc72d4a-80ee-4b1a-8724-0201c1a35621}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\localization\src\localization.vcxproj">
+ <Project>{ecffeb0c-1eda-45ee-9a10-b18143852e17}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\output_stream\src\c\output_stream.vcxproj">
+ <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\string\src\c\string.vcxproj">
+ <Project>{8d45767a-9b03-4905-97f6-d2f3f79141ea}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\windows_tools\src\c\scilab_windows\scilab_windows.vcxproj">
+ <Project>{8028f371-6a94-4a26-8804-6e7f05f1d1aa}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="includes\dynlib_spreadsheet.h" />
+ <ClInclude Include="includes\gw_spreadsheet.h" />
+ <ClInclude Include="sci_gateway\c\gw_csv_helpers.h" />
+ <ClInclude Include="src\c\checkCsvWriteFormat.h" />
+ <ClInclude Include="src\c\csvDefault.h" />
+ <ClInclude Include="src\c\csvRead.h" />
+ <ClInclude Include="src\c\csvWrite.h" />
+ <ClInclude Include="src\c\getRange.h" />
+ <ClInclude Include="src\c\ripole\bt-int.h" />
+ <ClInclude Include="src\c\ripole\bytedecoders.h" />
+ <ClInclude Include="src\c\ripole\logger.h" />
+ <ClInclude Include="src\c\ripole\ole.h" />
+ <ClInclude Include="src\c\ripole\olestream-unwrap.h" />
+ <ClInclude Include="src\c\ripole\pldstr.h" />
+ <ClInclude Include="src\c\ripole\ripole.h" />
+ <ClInclude Include="src\c\splitLine.h" />
+ <ClInclude Include="src\c\utftolatin.h" />
+ <ClInclude Include="src\c\xls.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="sci_gateway\c\gw_csv_helpers.c" />
+ <ClCompile Include="sci_gateway\c\gw_spreadsheet.c" />
+ <ClCompile Include="sci_gateway\c\sci_csvDefault.c" />
+ <ClCompile Include="sci_gateway\c\sci_csvRead.c" />
+ <ClCompile Include="sci_gateway\c\sci_csvStringToDouble.c" />
+ <ClCompile Include="sci_gateway\c\sci_csvTextScan.c" />
+ <ClCompile Include="sci_gateway\c\sci_csvWrite.c" />
+ <ClCompile Include="sci_gateway\c\sci_xls_open.c" />
+ <ClCompile Include="sci_gateway\c\sci_xls_read.c" />
+ <ClCompile Include="src\c\checkCsvWriteFormat.c" />
+ <ClCompile Include="src\c\csvDefault.c" />
+ <ClCompile Include="src\c\csvRead.c" />
+ <ClCompile Include="src\c\csvWrite.c" />
+ <ClCompile Include="src\c\DllmainSpreadsheet.c" />
+ <ClCompile Include="src\c\getRange.c" />
+ <ClCompile Include="src\c\ripole\bt-int.c" />
+ <ClCompile Include="src\c\ripole\bytedecoders.c" />
+ <ClCompile Include="src\c\ripole\logger.c" />
+ <ClCompile Include="src\c\ripole\ole.c" />
+ <ClCompile Include="src\c\ripole\olestream-unwrap.c" />
+ <ClCompile Include="src\c\ripole\pldstr.c" />
+ <ClCompile Include="src\c\ripole\ripole.c" />
+ <ClCompile Include="src\c\splitLine.c" />
+ <ClCompile Include="src\c\utftolatin.c" />
+ <ClCompile Include="src\c\xls.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/modules/spreadsheet/spreadsheet.vcxproj.filters b/modules/spreadsheet/spreadsheet.vcxproj.filters
new file mode 100755
index 000000000..d7ce7460d
--- /dev/null
+++ b/modules/spreadsheet/spreadsheet.vcxproj.filters
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ <Filter Include="localization">
+ <UniqueIdentifier>{161996ad-c6a7-4b3a-9399-661831bc6390}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libraries Dependencies">
+ <UniqueIdentifier>{7f5c10fb-d9f5-4d01-8be1-a6a730fb9003}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libraries Dependencies\Imports">
+ <UniqueIdentifier>{797cad15-667e-45f1-93a8-a1d93f52adbc}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\ripole">
+ <UniqueIdentifier>{a9229e67-395b-400e-b702-4a6b69e2440b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\ripole">
+ <UniqueIdentifier>{2af5f1e8-4cbe-4e42-a17d-4810d04ee086}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="src\c\spreadsheet.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="core_import.def">
+ <Filter>Libraries Dependencies\Imports</Filter>
+ </None>
+ <None Include="Makefile.am" />
+ <None Include="spreadsheet.iss" />
+ <None Include="sci_gateway\spreadsheet_gateway.xml" />
+ <None Include="locales\spreadsheet.pot">
+ <Filter>localization</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="includes\dynlib_spreadsheet.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\gw_spreadsheet.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="sci_gateway\c\gw_csv_helpers.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\checkCsvWriteFormat.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\csvDefault.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\csvRead.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\csvWrite.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\getRange.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\splitLine.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\utftolatin.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\xls.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\bt-int.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\bytedecoders.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\logger.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\ole.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\olestream-unwrap.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\pldstr.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ <ClInclude Include="src\c\ripole\ripole.h">
+ <Filter>Header Files\ripole</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="sci_gateway\c\gw_csv_helpers.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\gw_spreadsheet.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_csvDefault.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_csvRead.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_csvStringToDouble.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_csvTextScan.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_csvWrite.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_xls_open.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sci_gateway\c\sci_xls_read.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\checkCsvWriteFormat.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\csvDefault.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\csvRead.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\csvWrite.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\DllmainSpreadsheet.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\getRange.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\splitLine.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\utftolatin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\xls.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\bt-int.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\bytedecoders.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\logger.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\ole.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\olestream-unwrap.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\pldstr.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ <ClCompile Include="src\c\ripole\ripole.c">
+ <Filter>Source Files\ripole</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/modules/spreadsheet/src/c/.deps/.dirstamp b/modules/spreadsheet/src/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/.dirstamp
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo
new file mode 100755
index 000000000..e50974652
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-checkCsvWriteFormat.Plo
@@ -0,0 +1,109 @@
+src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo: \
+ src/c/checkCsvWriteFormat.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/ctype.h \
+ src/c/csvDefault.h ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/c/checkCsvWriteFormat.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/ctype.h:
+
+src/c/csvDefault.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/c/checkCsvWriteFormat.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvDefault.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvDefault.Plo
new file mode 100755
index 000000000..434b01673
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvDefault.Plo
@@ -0,0 +1,106 @@
+src/c/libscispreadsheet_algo_la-csvDefault.lo: src/c/csvDefault.c \
+ /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h src/c/csvDefault.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/c/checkCsvWriteFormat.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+src/c/csvDefault.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/c/checkCsvWriteFormat.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvRead.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvRead.Plo
new file mode 100755
index 000000000..5d3fe2f5b
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvRead.Plo
@@ -0,0 +1,205 @@
+src/c/libscispreadsheet_algo_la-csvRead.lo: src/c/csvRead.c \
+ /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/c/csvRead.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/core/includes/BOOL.h ../../modules/fileio/includes/mopen.h \
+ ../../modules/fileio/includes/dynlib_fileio.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/fileio/includes/mgetl.h \
+ ../../modules/localization/includes/charEncoding.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/fileio/includes/expandPathVariable.h \
+ ../../modules/fileio/includes/FileExist.h \
+ ../../modules/fileio/includes/mclose.h \
+ ../../modules/core/includes/warningmode.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/string/includes/pcre_private.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/output_stream/includes/sciprint.h src/c/splitLine.h \
+ ../../modules/string/includes/strsubst.h src/c/csvDefault.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/c/csvRead.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/fileio/includes/mopen.h:
+
+../../modules/fileio/includes/dynlib_fileio.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/fileio/includes/mgetl.h:
+
+../../modules/localization/includes/charEncoding.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/fileio/includes/expandPathVariable.h:
+
+../../modules/fileio/includes/FileExist.h:
+
+../../modules/fileio/includes/mclose.h:
+
+../../modules/core/includes/warningmode.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/string/includes/pcre_private.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/output_stream/includes/sciprint.h:
+
+src/c/splitLine.h:
+
+../../modules/string/includes/strsubst.h:
+
+src/c/csvDefault.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvWrite.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvWrite.Plo
new file mode 100755
index 000000000..b28a9098a
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-csvWrite.Plo
@@ -0,0 +1,244 @@
+src/c/libscispreadsheet_algo_la-csvWrite.lo: src/c/csvWrite.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/string/includes/stringToDouble.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/core/includes/BOOL.h src/c/csvWrite.h \
+ ../../modules/fileio/includes/mopen.h \
+ ../../modules/fileio/includes/dynlib_fileio.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/fileio/includes/mgetl.h \
+ ../../modules/localization/includes/charEncoding.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/fileio/includes/expandPathVariable.h \
+ ../../modules/fileio/includes/FileExist.h \
+ ../../modules/fileio/includes/mclose.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/values.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/float.h \
+ ../../modules/string/includes/strsubst.h src/c/csvDefault.h \
+ src/c/utftolatin.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/string/includes/stringToDouble.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/core/includes/BOOL.h:
+
+src/c/csvWrite.h:
+
+../../modules/fileio/includes/mopen.h:
+
+../../modules/fileio/includes/dynlib_fileio.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/fileio/includes/mgetl.h:
+
+../../modules/localization/includes/charEncoding.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/fileio/includes/expandPathVariable.h:
+
+../../modules/fileio/includes/FileExist.h:
+
+../../modules/fileio/includes/mclose.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/values.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/float.h:
+
+../../modules/string/includes/strsubst.h:
+
+src/c/csvDefault.h:
+
+src/c/utftolatin.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-getRange.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-getRange.Plo
new file mode 100755
index 000000000..621e3a34f
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-getRange.Plo
@@ -0,0 +1,113 @@
+src/c/libscispreadsheet_algo_la-getRange.lo: src/c/getRange.c \
+ /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/c/getRange.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/string/includes/complex_array.h \
+ ../../modules/string/includes/dynlib_string.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/c/getRange.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/string/includes/complex_array.h:
+
+../../modules/string/includes/dynlib_string.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-splitLine.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-splitLine.Plo
new file mode 100755
index 000000000..98ddb15ce
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-splitLine.Plo
@@ -0,0 +1,146 @@
+src/c/libscispreadsheet_algo_la-splitLine.lo: src/c/splitLine.c \
+ /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/c/splitLine.h \
+ ../../modules/string/includes/strsubst.h \
+ ../../modules/string/includes/dynlib_string.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/freeArrayOfString.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/core/includes/BOOL.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/c/splitLine.h:
+
+../../modules/string/includes/strsubst.h:
+
+../../modules/string/includes/dynlib_string.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/freeArrayOfString.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/core/includes/BOOL.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-utftolatin.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-utftolatin.Plo
new file mode 100755
index 000000000..5c430d99c
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-utftolatin.Plo
@@ -0,0 +1,104 @@
+src/c/libscispreadsheet_algo_la-utftolatin.lo: src/c/utftolatin.c \
+ /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h src/c/utftolatin.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+src/c/utftolatin.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
diff --git a/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-xls.Plo b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-xls.Plo
new file mode 100755
index 000000000..df47355a6
--- /dev/null
+++ b/modules/spreadsheet/src/c/.deps/libscispreadsheet_algo_la-xls.Plo
@@ -0,0 +1,210 @@
+src/c/libscispreadsheet_algo_la-xls.lo: src/c/xls.c \
+ /usr/include/stdc-predef.h /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/output_stream/includes/sciprint.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/returnanan.h \
+ ../../modules/core/includes/machine.h src/c/xls.h \
+ ../../modules/fileio/includes/mseek.h \
+ ../../modules/fileio/includes/dynlib_fileio.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/fileio/includes/mtell.h \
+ ../../modules/fileio/includes/mget.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/output_stream/includes/sciprint.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/returnanan.h:
+
+../../modules/core/includes/machine.h:
+
+src/c/xls.h:
+
+../../modules/fileio/includes/mseek.h:
+
+../../modules/fileio/includes/dynlib_fileio.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/fileio/includes/mtell.h:
+
+../../modules/fileio/includes/mget.h:
diff --git a/modules/spreadsheet/src/c/.dirstamp b/modules/spreadsheet/src/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/src/c/.dirstamp
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-checkCsvWriteFormat.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-checkCsvWriteFormat.o
new file mode 100755
index 000000000..4a7d4c817
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-checkCsvWriteFormat.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvDefault.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvDefault.o
new file mode 100755
index 000000000..a8a212d90
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvDefault.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvRead.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvRead.o
new file mode 100755
index 000000000..852a1fd25
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvRead.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvWrite.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvWrite.o
new file mode 100755
index 000000000..f9e0d338f
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-csvWrite.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-getRange.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-getRange.o
new file mode 100755
index 000000000..ac5a5ef31
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-getRange.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-splitLine.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-splitLine.o
new file mode 100755
index 000000000..a2e96c293
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-splitLine.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-utftolatin.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-utftolatin.o
new file mode 100755
index 000000000..776ed2520
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-utftolatin.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-xls.o b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-xls.o
new file mode 100755
index 000000000..585e80904
--- /dev/null
+++ b/modules/spreadsheet/src/c/.libs/libscispreadsheet_algo_la-xls.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/DllmainSpreadsheet.c b/modules/spreadsheet/src/c/DllmainSpreadsheet.c
new file mode 100755
index 000000000..29f2a419b
--- /dev/null
+++ b/modules/spreadsheet/src/c/DllmainSpreadsheet.c
@@ -0,0 +1,33 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <windows.h>
+/*--------------------------------------------------------------------------*/
+#pragma comment(lib,"../../bin/libintl.lib")
+/*--------------------------------------------------------------------------*/
+int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved)
+{
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ break;
+ case DLL_PROCESS_DETACH:
+ break;
+ case DLL_THREAD_ATTACH:
+ break;
+ case DLL_THREAD_DETACH:
+ break;
+ }
+ return 1;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/src/c/checkCsvWriteFormat.c b/modules/spreadsheet/src/c/checkCsvWriteFormat.c
new file mode 100755
index 000000000..005984092
--- /dev/null
+++ b/modules/spreadsheet/src/c/checkCsvWriteFormat.c
@@ -0,0 +1,99 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include <ctype.h>
+#include "csvDefault.h"
+#include "MALLOC.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "checkCsvWriteFormat.h"
+// =============================================================================
+#define NB_FORMAT_SUPPORTED 7
+static const char *supportedFormat[NB_FORMAT_SUPPORTED] =
+{"lf", "lg", "d", "i", "e", "f", "g"};
+// =============================================================================
+static char *replaceInFormat(const char *format);
+static char *getCleanedFormat(const char *format);
+// =============================================================================
+int checkCsvWriteFormat(const char *format)
+{
+ if (format)
+ {
+ char *tokenPercent1 = strchr((char*)format, '%');
+ char *tokenPercent2 = strrchr((char*)format, '%');
+ if ((tokenPercent2 && tokenPercent1) && (tokenPercent1 == tokenPercent2))
+ {
+ char *cleanedFormat = getCleanedFormat(format);
+ if (cleanedFormat)
+ {
+ FREE(cleanedFormat);
+ cleanedFormat = NULL;
+ return 0;
+ }
+ }
+ }
+ return 1;
+}
+// =============================================================================
+static char *replaceInFormat(const char *format)
+{
+ if (format)
+ {
+ char *cleanedFormat = getCleanedFormat(format);
+ if (cleanedFormat)
+ {
+ FREE(cleanedFormat);
+ cleanedFormat = NULL;
+ return strdup("%s");
+ }
+ }
+
+ return NULL;
+}
+// =============================================================================
+static char *getCleanedFormat(const char *format)
+{
+ char *cleanedFormat = NULL;
+ if (format)
+ {
+ char *percent = strchr((char*)format, '%');
+ if (percent)
+ {
+ int i = 0;
+ for (i = 0; i < NB_FORMAT_SUPPORTED; i++)
+ {
+ char *token = strstr(percent, supportedFormat[i]);
+ if (token)
+ {
+ size_t nbcharacters = strlen(percent) - strlen(token);
+ cleanedFormat = strdup(percent);
+ cleanedFormat[nbcharacters] = 0;
+ if ( ((nbcharacters - 1 > 0) && (isdigit(cleanedFormat[nbcharacters - 1])) ||
+ (cleanedFormat[nbcharacters - 1]) == '.') ||
+ (cleanedFormat[nbcharacters - 1]) == '%')
+ {
+ strcat(cleanedFormat, supportedFormat[i]);
+ return cleanedFormat;
+ }
+ else
+ {
+ FREE(cleanedFormat);
+ cleanedFormat = NULL;
+ }
+ }
+ }
+ }
+ }
+ return cleanedFormat;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/checkCsvWriteFormat.h b/modules/spreadsheet/src/c/checkCsvWriteFormat.h
new file mode 100755
index 000000000..6f02d7e92
--- /dev/null
+++ b/modules/spreadsheet/src/c/checkCsvWriteFormat.h
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __CHECKCSVWRITEFORMAT_H__
+#define __CHECKCSVWRITEFORMAT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ int checkCsvWriteFormat(const char *format);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __CHECKCSVWRITEFORMAT_H__ */
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/csvDefault.c b/modules/spreadsheet/src/c/csvDefault.c
new file mode 100755
index 000000000..5e86b9d71
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvDefault.c
@@ -0,0 +1,439 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include "csvDefault.h"
+#include "MALLOC.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "checkCsvWriteFormat.h"
+// =============================================================================
+#define DEFAULT_CSV_SEPARATOR ","
+#define DEFAULT_CSV_DECIMAL "."
+#define DEFAULT_CSV_PRECISION "%.17lg"
+#define DEFAULT_CSV_COMMENTS_REGEXP ""
+#ifdef _MSC_VER
+#define DEFAULT_CSV_EOL "\r\n"
+#else
+#define DEFAULT_CSV_EOL "\n"
+#endif
+#define CSV_DECIMAL_MODE_1 DEFAULT_CSV_DECIMAL
+#define CSV_DECIMAL_MODE_2 ","
+#define DEFAULT_CSV_CONVERSION "double"
+#define CSV_CONVERSION_MODE_1 DEFAULT_CSV_CONVERSION
+#define CSV_CONVERSION_MODE_2 "string"
+#define DEFAULT_CSV_ENCODING "utf-8"
+#define DEFAULT_CSV_ENCODING_MODE1 "utf-8"
+#define DEFAULT_CSV_ENCODING_MODE2 "iso-latin"
+#define CSV_IGNORE_BLANK_LINE_MODE_1 "off"
+#define CSV_IGNORE_BLANK_LINE_MODE_2 "on"
+#define DEFAULT_IGNORE_BLANK_LINE CSV_IGNORE_BLANK_LINE_MODE_2
+// =============================================================================
+static char *defaultCsvSeparator = NULL;
+static char *defaultCsvDecimal = NULL;
+static char *defaultCsvConversion = NULL;
+static char *defaultCsvPrecision = NULL;
+static char *defaultCsvCommentsRegExp = NULL;
+static char *defaultCsvEOL = NULL;
+static char *defaultCsvEncoding = NULL;
+static char *defaultCsvIgnoreBlankLine = NULL;
+// =============================================================================
+static int initializeCsvDefaultValues(void);
+// =============================================================================
+const char *getCsvDefaultSeparator(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvSeparator;
+}
+// =============================================================================
+const char *getCsvDefaultDecimal(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvDecimal;
+}
+// =============================================================================
+const char *getCsvDefaultConversion(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvConversion;
+}
+// =============================================================================
+const char *getCsvDefaultPrecision(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvPrecision;
+}
+// =============================================================================
+const char *getCsvDefaultCommentsRegExp(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvCommentsRegExp;
+}
+// =============================================================================
+const char *getCsvDefaultEOL(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvEOL;
+}
+// =============================================================================
+const char *getCsvDefaultEncoding(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvEncoding;
+}
+// =============================================================================
+const char *getCsvDefaultCsvIgnoreBlankLine(void)
+{
+ initializeCsvDefaultValues();
+ return defaultCsvIgnoreBlankLine;
+}
+// =============================================================================
+int setCsvDefaultSeparator(const char *separator)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (separator == NULL)
+ {
+ return 1;
+ }
+
+ if (strcmp(separator, getCsvDefaultDecimal()) == 0)
+ {
+ return 1;
+ }
+
+ if (defaultCsvSeparator)
+ {
+ FREE(defaultCsvSeparator);
+ }
+ defaultCsvSeparator = strdup(separator);
+ if (defaultCsvSeparator == NULL)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+// =============================================================================
+int setCsvDefaultDecimal(const char *decimal)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (decimal == NULL)
+ {
+ return 1;
+ }
+
+ /* decimal separator supported . and , */
+ if ((strcmp(decimal, CSV_DECIMAL_MODE_1) == 0) ||
+ (strcmp(decimal, CSV_DECIMAL_MODE_2) == 0))
+ {
+ if (defaultCsvDecimal)
+ {
+ FREE(defaultCsvDecimal);
+ }
+ defaultCsvDecimal = strdup(decimal);
+ if (defaultCsvDecimal)
+ {
+ return 0;
+ }
+ }
+ return 1;
+}
+// =============================================================================
+int setCsvDefaultConversion(const char *conversion)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (conversion == NULL)
+ {
+ return 1;
+ }
+
+ if ((strcmp(conversion, CSV_CONVERSION_MODE_1) == 0) ||
+ (strcmp(conversion, CSV_CONVERSION_MODE_2) == 0))
+ {
+ if (defaultCsvConversion)
+ {
+ FREE(defaultCsvConversion);
+ }
+ defaultCsvConversion = strdup(conversion);
+ if (defaultCsvConversion)
+ {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+// =============================================================================
+int setCsvDefaultPrecision(const char *precision)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (precision == NULL)
+ {
+ return 1;
+ }
+ if (checkCsvWriteFormat(precision) == 0)
+ {
+ if (defaultCsvPrecision)
+ {
+ FREE(defaultCsvPrecision);
+ }
+ defaultCsvPrecision = strdup(precision);
+ if (defaultCsvPrecision)
+ {
+ return 0;
+ }
+ }
+ return 1;
+}
+// =============================================================================
+int setCsvDefaultCsvIgnoreBlankLine(const char *blankMode)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (blankMode == NULL)
+ {
+ return 1;
+ }
+ if ((strcmp(blankMode, CSV_IGNORE_BLANK_LINE_MODE_1) == 0) ||
+ (strcmp(blankMode, CSV_IGNORE_BLANK_LINE_MODE_2) == 0))
+ {
+ if (defaultCsvIgnoreBlankLine)
+ {
+ FREE(defaultCsvIgnoreBlankLine);
+ }
+ defaultCsvIgnoreBlankLine = strdup(blankMode);
+ if (defaultCsvIgnoreBlankLine)
+ {
+ return 0;
+ }
+ }
+ return 1;
+}
+// =============================================================================
+static int initializeCsvDefaultValues(void)
+{
+ if (defaultCsvSeparator == NULL)
+ {
+ defaultCsvSeparator = strdup(DEFAULT_CSV_SEPARATOR);
+ }
+
+ if (defaultCsvDecimal == NULL)
+ {
+ defaultCsvDecimal = strdup(DEFAULT_CSV_DECIMAL);
+ }
+
+ if (defaultCsvConversion == NULL)
+ {
+ defaultCsvConversion = strdup(DEFAULT_CSV_CONVERSION);
+ }
+
+ if (defaultCsvPrecision == NULL)
+ {
+ defaultCsvPrecision = strdup(DEFAULT_CSV_PRECISION);
+ }
+
+ if (defaultCsvCommentsRegExp == NULL)
+ {
+ defaultCsvCommentsRegExp = strdup(DEFAULT_CSV_COMMENTS_REGEXP);
+ }
+
+ if (defaultCsvEOL == NULL)
+ {
+ defaultCsvEOL = strdup(DEFAULT_CSV_EOL);
+ }
+
+ if (defaultCsvEncoding == NULL)
+ {
+ defaultCsvEncoding = strdup(DEFAULT_CSV_ENCODING);
+ }
+
+ if (defaultCsvIgnoreBlankLine == NULL)
+ {
+ defaultCsvIgnoreBlankLine = strdup(DEFAULT_IGNORE_BLANK_LINE);
+ }
+
+ if ((defaultCsvSeparator == NULL) ||
+ (defaultCsvDecimal == NULL) ||
+ (defaultCsvConversion == NULL) ||
+ (defaultCsvPrecision == NULL) ||
+ (defaultCsvCommentsRegExp == NULL) ||
+ (defaultCsvEOL == NULL) ||
+ (defaultCsvEncoding == NULL) ||
+ (defaultCsvIgnoreBlankLine == NULL))
+ {
+ return 1;
+ }
+
+ return 0;
+}
+// =============================================================================
+int setCsvDefaultReset(void)
+{
+ if (defaultCsvSeparator)
+ {
+ FREE(defaultCsvSeparator);
+ defaultCsvSeparator = NULL;
+ }
+ if (defaultCsvDecimal)
+ {
+ FREE(defaultCsvDecimal);
+ defaultCsvDecimal = NULL;
+ }
+ if (defaultCsvConversion)
+ {
+ FREE(defaultCsvConversion);
+ defaultCsvConversion = NULL;
+ }
+ if (defaultCsvPrecision)
+ {
+ FREE(defaultCsvPrecision);
+ defaultCsvPrecision = NULL;
+ }
+ if (defaultCsvCommentsRegExp)
+ {
+ FREE(defaultCsvCommentsRegExp);
+ defaultCsvCommentsRegExp = NULL;
+ }
+ if (defaultCsvEOL)
+ {
+ FREE(defaultCsvEOL);
+ defaultCsvEOL = NULL;
+ }
+ if (defaultCsvEncoding)
+ {
+ FREE(defaultCsvEncoding);
+ defaultCsvEncoding = NULL;
+ }
+ if (defaultCsvIgnoreBlankLine)
+ {
+ FREE(defaultCsvIgnoreBlankLine);
+ defaultCsvIgnoreBlankLine = NULL;
+ }
+ return initializeCsvDefaultValues();
+}
+// =============================================================================
+int setCsvDefaultCommentsRegExp(const char *commentsRegExp)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (commentsRegExp == NULL)
+ {
+ return 1;
+ }
+
+ if (strcmp(commentsRegExp, getCsvDefaultCommentsRegExp()) == 0)
+ {
+ return 1;
+ }
+
+ if (defaultCsvCommentsRegExp)
+ {
+ FREE(defaultCsvCommentsRegExp);
+ defaultCsvCommentsRegExp = NULL;
+ }
+
+ defaultCsvCommentsRegExp = strdup(commentsRegExp);
+
+ if (defaultCsvDecimal == NULL)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+// =============================================================================
+int setCsvDefaultEOL(const char *eol)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (eol == NULL)
+ {
+ return 1;
+ }
+
+ if (strcmp(eol, getCsvDefaultEOL()) == 0)
+ {
+ return 0;
+ }
+
+ if (defaultCsvEOL)
+ {
+ FREE(defaultCsvEOL);
+ defaultCsvEOL = NULL;
+ }
+
+ defaultCsvEOL = strdup(eol);
+
+ if (defaultCsvEOL == NULL)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+// =============================================================================
+int setCsvDefaultEncoding(const char *encoding)
+{
+ if (initializeCsvDefaultValues())
+ {
+ return 1;
+ }
+ if (encoding == NULL)
+ {
+ return 1;
+ }
+
+ if (strcmp(encoding, getCsvDefaultEncoding()) == 0)
+ {
+ return 1;
+ }
+
+ if ((strcmp(encoding, DEFAULT_CSV_ENCODING_MODE1) != 0) &&
+ (strcmp(encoding, DEFAULT_CSV_ENCODING_MODE2) != 0))
+ {
+ return 1;
+ }
+
+ if (defaultCsvEncoding)
+ {
+ FREE(defaultCsvEncoding);
+ defaultCsvEncoding = NULL;
+ }
+
+ defaultCsvEncoding = strdup(encoding);
+
+ if (defaultCsvEncoding == NULL)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/csvDefault.h b/modules/spreadsheet/src/c/csvDefault.h
new file mode 100755
index 000000000..2fc78531e
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvDefault.h
@@ -0,0 +1,45 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __CSV_DEFAULT_H__
+#define __CSV_DEFAULT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ const char *getCsvDefaultSeparator(void);
+ const char *getCsvDefaultDecimal(void);
+ const char *getCsvDefaultConversion(void);
+ const char *getCsvDefaultPrecision(void);
+ const char *getCsvDefaultCommentsRegExp(void);
+ const char *getCsvDefaultEOL(void);
+ const char *getCsvDefaultEncoding(void);
+ const char *getCsvDefaultCsvIgnoreBlankLine(void);
+
+ int setCsvDefaultSeparator(const char *separator);
+ int setCsvDefaultDecimal(const char *decimal);
+ int setCsvDefaultConversion(const char *conversion);
+ int setCsvDefaultPrecision(const char *precision);
+ int setCsvDefaultCommentsRegExp(const char *commentsRegExp);
+ int setCsvDefaultEOL(const char *eol);
+ int setCsvDefaultEncoding(const char *encoding);
+ int setCsvDefaultCsvIgnoreBlankLine(const char *blankMode);
+
+ int setCsvDefaultReset(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __CSV_DEFAULT_H__ */
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/csvRead.c b/modules/spreadsheet/src/c/csvRead.c
new file mode 100755
index 000000000..fb967c10d
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvRead.c
@@ -0,0 +1,723 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include <stdio.h>
+#include "csvRead.h"
+#include "MALLOC.h"
+#include "freeArrayOfString.h"
+#include "mopen.h"
+#include "mgetl.h"
+#include "localization.h"
+#include "expandPathVariable.h"
+#include "FileExist.h"
+#include "mclose.h"
+#include "warningmode.h"
+#include "pcre_private.h"
+#include "sciprint.h"
+#include "splitLine.h"
+#include "strsubst.h"
+#if _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "csvDefault.h"
+// =============================================================================
+#if _MSC_VER
+#define READ_ONLY_TEXT_MODE "rt"
+#else
+#define READ_ONLY_TEXT_MODE "r"
+#endif
+// =============================================================================
+static int getNumbersOfColumnsInLines(const char **lines, int sizelines,
+ const char *separator);
+static int getNumbersOfColumnsInLine(const char *line, const char *separator);
+static char **getStringsFromLines(const char **lines, int sizelines,
+ const char *separator, const char *decimal,
+ int m, int n);
+static char **removeEmptyLinesAtTheEnd(const char **lines, int *sizelines);
+static char *stripCharacters(const char *line);
+static char **replaceStrings(const char **lines, int nbLines, const char **toreplace, int sizetoreplace);
+static char **extractComments(const char **lines, int nbLines, const char *regexpcomments, int *nbcomments, int *iErr);
+static char **removeComments(const char **lines, int nbLines, const char *regexpcomments, int *nbNewLine, int *iErr);
+static char **removeAllBlankLines(const char **lines, int *sizelines);
+// =============================================================================
+csvResult* csvRead(const char *filename, const char *separator, const char *decimal, const char **toreplace, int sizetoreplace, const char *regexpcomments, int header)
+{
+ char *expandedFilename = NULL;
+ csvResult *result = NULL;
+ int fd = 0;
+ int f_swap = 0;
+ double res = 0.0;
+ int errMOPEN = MOPEN_INVALID_STATUS;
+ int errMGETL = MGETL_ERROR;
+ double dErrClose = 0.;
+ char **lines = NULL;
+ int nblines = 0;
+ char **replacedInLines = NULL;
+ char **pComments = NULL;
+ int nbComments = 0;
+
+ if ((filename == NULL) || (separator == NULL) || (decimal == NULL))
+ {
+ return NULL;
+ }
+
+ expandedFilename = expandPathVariable((char*)filename);
+ if (!FileExist(expandedFilename))
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_FILE_NOT_EXIST;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+
+ FREE(expandedFilename);
+ return result;
+ }
+
+ C2F(mopen)(&fd, expandedFilename, (char*)READ_ONLY_TEXT_MODE, &f_swap, &res, &errMOPEN);
+ FREE(expandedFilename);
+
+ if (errMOPEN != MOPEN_NO_ERROR)
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_MOPEN_ERROR;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+
+ }
+ return result;
+ }
+
+ if (header != 0)
+ {
+ mgetl(fd, header, &nblines, &errMGETL);
+ }
+ lines = mgetl(fd, -1, &nblines, &errMGETL);
+
+ C2F(mclose)(&fd, &dErrClose);
+
+ if (errMGETL != MGETL_NO_ERROR)
+ {
+ if (lines)
+ {
+ freeArrayOfString(lines, nblines);
+ lines = NULL;
+ }
+
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_READLINES_ERROR;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ return result;
+ }
+
+ if (regexpcomments)
+ {
+ int iErr = 0;
+
+ pComments = extractComments((const char**)lines, nblines, (const char*)regexpcomments, &nbComments, &iErr);
+
+ if ((iErr == CAN_NOT_COMPILE_PATTERN) || (iErr == DELIMITER_NOT_ALPHANUMERIC))
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ if ((iErr == CAN_NOT_COMPILE_PATTERN) || (iErr == DELIMITER_NOT_ALPHANUMERIC))
+ {
+ iErr = CSV_READ_REGEXP_ERROR;
+ }
+ result->err = (csvReadError)iErr;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ return result;
+ }
+
+ if (pComments)
+ {
+ char **pCleanedLines = NULL;
+ int nbCleanedLines = 0;
+ int i = 0;
+
+ pCleanedLines = removeComments((const char**)lines, nblines, (const char*)regexpcomments, &nbCleanedLines, &iErr);
+ if (pCleanedLines)
+ {
+ FREE(lines);
+ lines = pCleanedLines;
+ nblines = nbCleanedLines;
+ }
+
+ }
+ }
+
+ if (toreplace && (sizetoreplace > 0))
+ {
+ replacedInLines = replaceStrings((const char**)lines, nblines, toreplace, sizetoreplace);
+ if (replacedInLines)
+ {
+ freeArrayOfString(lines, nblines);
+ lines = replacedInLines;
+ }
+ }
+
+ result = csvTextScan((const char**)lines, nblines, (const char*)separator, (const char*)decimal);
+ freeArrayOfString(lines, nblines);
+
+ if (result)
+ {
+ result->pstrComments = pComments;
+ result->nbComments = nbComments;
+ }
+ else
+ {
+ freeArrayOfString(pComments, nbComments);
+ }
+
+
+ return result;
+}
+// =============================================================================
+csvResult* csvTextScan(const char **lines, int numberOfLines, const char *separator, const char *decimal)
+{
+ csvResult *result = NULL;
+ int nbRows = 0;
+ int nbColumns = 0;
+ char **cellsStrings = NULL;
+ char **cleanedLines = NULL;
+ int nbLines = numberOfLines;
+
+ if (strcmp(separator, decimal) == 0)
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_SEPARATOR_DECIMAL_EQUAL;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ return result;
+ }
+
+ // ticket 472
+ {
+ const char *blankMode = getCsvDefaultCsvIgnoreBlankLine();
+ if (strcmp(blankMode, "on") == 0)
+ {
+ char **tmpLines = removeAllBlankLines(lines, &nbLines);
+ if (tmpLines)
+ {
+ freeArrayOfString(cleanedLines, nbLines);
+ cleanedLines = tmpLines;
+ }
+ }
+ else
+ {
+ /* remove last lines empty (bug 7003 in scilab)*/
+ cleanedLines = removeEmptyLinesAtTheEnd(lines, &nbLines);
+ }
+ }
+
+ nbColumns = getNumbersOfColumnsInLines((const char **)cleanedLines, nbLines, separator);
+ if (nbColumns == 0)
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_COLUMNS_ERROR;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ FREE(cleanedLines);
+ return result;
+ }
+ else
+ {
+ nbRows = nbLines;
+ }
+
+ cellsStrings = getStringsFromLines((const char **)cleanedLines, nbLines, separator, decimal, nbColumns, nbRows);
+ if (cleanedLines)
+ {
+ freeArrayOfString(cleanedLines, nbLines);
+ cleanedLines = NULL;
+ }
+
+ if (cellsStrings)
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_NO_ERROR;
+ result->m = nbRows;
+ result->n = nbColumns;
+ result->pstrValues = cellsStrings;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ else
+ {
+ FREE(cellsStrings);
+ }
+ }
+ else
+ {
+ result = (csvResult*)(MALLOC(sizeof(csvResult)));
+ if (result)
+ {
+ result->err = CSV_READ_COLUMNS_ERROR;
+ result->m = 0;
+ result->n = 0;
+ result->pstrValues = NULL;
+ result->pstrComments = NULL;
+ result->nbComments = 0;
+ }
+ }
+ return result;
+}
+// =============================================================================
+void freeCsvResult(csvResult *result)
+{
+ if (result)
+ {
+ if (result->pstrValues)
+ {
+ freeArrayOfString(result->pstrValues, result->m * result->n);
+ result->pstrValues = NULL;
+ }
+ result->m = 0;
+ result->n = 0;
+
+ if (result->pstrComments)
+ {
+ freeArrayOfString(result->pstrComments, result->nbComments);
+ result->pstrComments = NULL;
+ }
+ result->err = CSV_READ_ERROR;
+ FREE(result);
+ result = NULL;
+ }
+}
+// =============================================================================
+static int getNumbersOfColumnsInLines(const char **lines, int sizelines,
+ const char *separator)
+{
+ int previousNbColumns = 0;
+ int NbColumns = 0;
+ BOOL firstLine = TRUE;
+ if (lines)
+ {
+ int i = 0;
+ for (i = 0; i < sizelines; i++)
+ {
+ NbColumns = getNumbersOfColumnsInLine(lines[i], separator);
+ if (firstLine)
+ {
+ previousNbColumns = NbColumns;
+ firstLine = FALSE;
+ }
+ else
+ {
+ if (previousNbColumns != NbColumns)
+ {
+ if (getWarningMode())
+ {
+ sciprint(_("%s: Inconsistency found in the columns. At line %d, found %d columns while the previous had %d.\n"), _("Warning"), i + 1, NbColumns, previousNbColumns);
+ }
+
+ return 0;
+ }
+ }
+ }
+ }
+ return NbColumns;
+}
+// =============================================================================
+static int getNumbersOfColumnsInLine(const char *line, const char *separator)
+{
+ if (line && separator)
+ {
+ int i = 0;
+ int nbTokens = 0;
+ char **splittedStr = splitLineCSV(line, separator, &nbTokens);
+ if (splittedStr)
+ {
+ freeArrayOfString(splittedStr, nbTokens);
+ return nbTokens;
+ }
+ else
+ {
+ int len = (int)strlen(line);
+ if (len > 0)
+ {
+ nbTokens = 1;
+ return nbTokens;
+ }
+ }
+ }
+ return 0;
+}
+// =============================================================================
+static char **getStringsFromLines(const char **lines, int sizelines,
+ const char *separator,
+ const char *decimal,
+ int m, int n)
+{
+ char **results = NULL;
+
+ if (lines == NULL)
+ {
+ return NULL;
+ }
+ if (separator == NULL)
+ {
+ return NULL;
+ }
+ if (m == 0 || n == 0)
+ {
+ return NULL;
+ }
+
+ results = (char**) MALLOC(sizeof(char*) * (m * n));
+ if (results)
+ {
+ int i = 0;
+ for (i = 0; i < sizelines; i++)
+ {
+ int nbTokens = 0;
+ char **lineStrings = splitLineCSV(lines[i], separator, &nbTokens);
+ int j = 0;
+
+ if (lineStrings == NULL)
+ {
+ lineStrings = (char**)MALLOC(sizeof(char*) * 1);
+ lineStrings[0] = strdup(lines[i]);
+ nbTokens = 1;
+ }
+
+ if (m != nbTokens)
+ {
+ freeArrayOfString(results, nbTokens * n);
+ FREE(lineStrings);
+ return NULL;
+ }
+
+ for (j = 0; j < m; j++)
+ {
+
+ if (!decimal)
+ {
+ results[i + n * j] = strdup(lineStrings[j]);
+ }
+ else
+ {
+ /* Proceed to the remplacement of the provided decimal to the default on
+ * usually, it converts "," => "." */
+ results[i + n * j] = strsub(lineStrings[j], decimal, getCsvDefaultDecimal());
+ }
+
+ if (lineStrings[j])
+ {
+ FREE(lineStrings[j]);
+ lineStrings[j] = NULL;
+ }
+ }
+ FREE(lineStrings);
+ }
+ }
+ return results;
+}
+// =============================================================================
+static char **removeEmptyLinesAtTheEnd(const char **lines, int *sizelines)
+{
+ char **returnedLines = NULL;
+ int nbLinesToRemove = 0;
+
+ if (lines)
+ {
+ int i = 0;
+ if (*sizelines >= 1)
+ {
+ for (i = *sizelines - 1; i >= 0; i--)
+ {
+ char *cleanedLine = stripCharacters(lines[i]);
+ if (cleanedLine)
+ {
+ int len = (int) strlen(cleanedLine);
+ FREE(cleanedLine);
+ cleanedLine = NULL;
+ if (len == 0)
+ {
+ nbLinesToRemove++;
+ FREE((char*)lines[i]);
+ lines[i] = NULL;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ if (nbLinesToRemove > 0)
+ {
+ *sizelines = *sizelines - nbLinesToRemove;
+ }
+ returnedLines = (char **)MALLOC(sizeof(char *) * (*sizelines));
+ if (returnedLines)
+ {
+ for (i = 0; i < *sizelines; i++)
+ {
+ returnedLines[i] = strdup(lines[i]);
+ }
+ }
+ }
+ }
+
+ return returnedLines;
+}
+// =============================================================================
+static char **removeAllBlankLines(const char **lines, int *sizelines)
+{
+ char **returnedLines = NULL;
+ int nbLines = 0;
+ if (lines)
+ {
+ int i = 0;
+ for (i = 0; i < *sizelines; i++)
+ {
+ char *cleanedLine = stripCharacters(lines[i]);
+ if (cleanedLine)
+ {
+ int len = (int) strlen(cleanedLine);
+ FREE(cleanedLine);
+ cleanedLine = NULL;
+ if (len != 0)
+ {
+ if (nbLines == 0)
+ {
+ nbLines++;
+ returnedLines = (char**)MALLOC(sizeof(char*) * nbLines);
+ }
+ else
+ {
+ nbLines++;
+ returnedLines = (char**)REALLOC(returnedLines, sizeof(char*) * nbLines);
+ }
+
+ if (returnedLines)
+ {
+ returnedLines[nbLines - 1] = strdup(lines[i]);
+ }
+ else
+ {
+ *sizelines = 0;
+ return NULL;
+ }
+ }
+ }
+ }
+ *sizelines = nbLines;
+ }
+ return returnedLines;
+}
+// =============================================================================
+static char *stripCharacters(const char *line)
+{
+ char *returnedLine = NULL;
+ if (line)
+ {
+ char *tmpLineWithoutTab = strsub((char*)line, "\t", "");
+ if (tmpLineWithoutTab)
+ {
+ char *tmpLineWithoutLF = strsub(tmpLineWithoutTab, "\r", "");
+ if (tmpLineWithoutLF)
+ {
+ char *tmpLineWithoutCR = strsub(tmpLineWithoutTab, "\n", "");
+ if (tmpLineWithoutCR)
+ {
+ returnedLine = strsub(tmpLineWithoutCR, " ", "");
+ FREE(tmpLineWithoutCR);
+ }
+ else
+ {
+ returnedLine = strdup(line);
+ }
+ FREE(tmpLineWithoutLF);
+ tmpLineWithoutLF = NULL;
+ }
+ else
+ {
+ returnedLine = strdup(line);
+ }
+ FREE(tmpLineWithoutTab);
+ tmpLineWithoutTab = NULL;
+ }
+ else
+ {
+ returnedLine = strdup(line);
+ }
+ }
+
+ return returnedLine;
+}
+// =============================================================================
+static char **replaceStrings(const char **lines, int nbLines, const char **toreplace, int sizetoreplace)
+{
+ char **replacedStrings = NULL;
+ int nr = 0;
+
+ nr = sizetoreplace / 2;
+
+ if (lines)
+ {
+ int i = 0;
+
+ replacedStrings = (char**)MALLOC(sizeof(char*) * nbLines);
+ if (replacedStrings)
+ {
+ // Copy the source lines to the target replacedStrings.
+ int j = 0;
+ for (j = 0; j < nbLines; j++)
+ {
+ replacedStrings[j] = strdup(lines[j]);
+ }
+ // Make replacements within the target replacedStrings.
+ for (i = 0; i < nr; i++)
+ {
+ for (j = 0; j < nbLines; j++)
+ {
+ replacedStrings[j] = strsub(replacedStrings[j], toreplace[i], toreplace[nr + i]);
+ }
+ }
+ }
+ }
+ return replacedStrings;
+}
+// =============================================================================
+static char **extractComments(const char **lines, int nbLines,
+ const char *regexpcomments, int *nbcomments, int *iErr)
+{
+ char **pComments = NULL;
+ int i = 0;
+
+ for (i = 0; i < nbLines; i++)
+ {
+ int Output_Start = 0;
+ int Output_End = 0;
+ pcre_error_code answer = pcre_private((char*)lines[i], (char*)regexpcomments, &Output_Start, &Output_End, NULL, NULL);
+
+ if ( (answer == CAN_NOT_COMPILE_PATTERN) || (answer == DELIMITER_NOT_ALPHANUMERIC))
+ {
+ if (pComments)
+ {
+ freeArrayOfString(pComments, *nbcomments);
+ }
+
+ *nbcomments = 0;
+
+ *iErr = answer;
+ return NULL;
+ }
+
+ if ( answer == PCRE_FINISHED_OK )
+ {
+ (*nbcomments)++;
+ if (pComments == NULL)
+ {
+ pComments = (char **)MALLOC(sizeof(char*) * (*nbcomments));
+ }
+ else
+ {
+ pComments = (char **)REALLOC(pComments, sizeof(char*) * (*nbcomments));
+ }
+
+ if (pComments == NULL)
+ {
+ *nbcomments = 0;
+ *iErr = 1;
+ return NULL;
+ }
+ pComments[(*nbcomments) - 1] = strdup(lines[i]);
+ }
+ }
+
+ return pComments;
+}
+// =============================================================================
+static char **removeComments(const char **lines, int nbLines,
+ const char *regexpcomments, int *newNbLines, int *iErr)
+{
+ char **pLinesCleaned = NULL;
+
+ int i = 0;
+ *newNbLines = 0;
+
+ for (i = 0; i < nbLines; i++)
+ {
+ int Output_Start = 0;
+ int Output_End = 0;
+ pcre_error_code answer = pcre_private((char*)lines[i], (char*)regexpcomments, &Output_Start, &Output_End, NULL, NULL);
+ if ( answer == PCRE_FINISHED_OK )
+ {
+ FREE((char*)lines[i]);
+ lines[i] = NULL;
+ }
+ else
+ {
+ (*newNbLines)++;
+ if (pLinesCleaned == NULL)
+ {
+ pLinesCleaned = (char **)MALLOC(sizeof(char*) * (*newNbLines));
+ }
+ else
+ {
+ pLinesCleaned = (char **)REALLOC(pLinesCleaned, sizeof(char*) * (*newNbLines));
+ }
+
+ if (pLinesCleaned == NULL)
+ {
+ *newNbLines = 0;
+ *iErr = 1;
+ return NULL;
+ }
+
+ pLinesCleaned[(*newNbLines) - 1] = (char*)lines[i];
+ }
+ }
+ return pLinesCleaned;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/csvRead.h b/modules/spreadsheet/src/c/csvRead.h
new file mode 100755
index 000000000..0d3b70372
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvRead.h
@@ -0,0 +1,55 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __CSV_READ_H__
+#define __CSV_READ_H__
+
+typedef enum
+{
+ CSV_READ_NO_ERROR = 0,
+ CSV_READ_MOPEN_ERROR = 1,
+ CSV_READ_FILE_NOT_EXIST = 2,
+ CSV_READ_MEMORY_ALLOCATION = 3,
+ CSV_READ_READLINES_ERROR = 4,
+ CSV_READ_COLUMNS_ERROR = 5,
+ CSV_READ_ERROR = 6,
+ CSV_READ_SEPARATOR_DECIMAL_EQUAL = 7,
+ CSV_READ_REGEXP_ERROR = 8
+} csvReadError;
+
+typedef struct
+{
+ char **pstrValues;
+ int m;
+ int n;
+ char **pstrComments;
+ int nbComments;
+ csvReadError err;
+} csvResult;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ csvResult* csvRead(const char *filename, const char *separator, const char *decimal,
+ const char **toreplace, int sizetoreplace, const char *regexpcomments, int header);
+
+ csvResult* csvTextScan(const char **lines, int numberOfLines, const char *separator, const char *decimal);
+
+ void freeCsvResult(csvResult *result);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __CSV_READ_H__ */
+
diff --git a/modules/spreadsheet/src/c/csvWrite.c b/modules/spreadsheet/src/c/csvWrite.c
new file mode 100755
index 000000000..9a48f80ef
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvWrite.c
@@ -0,0 +1,557 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#if defined(__linux__)
+#define _GNU_SOURCE /* Bug 5673 fix: avoid dependency on GLIBC_2.7 */
+#endif
+// =============================================================================
+#include <stdio.h>
+#include <string.h>
+#include "stringToDouble.h"
+#include "csvWrite.h"
+#include "mopen.h"
+#include "mgetl.h"
+#include "expandPathVariable.h"
+#include "FileExist.h"
+#include "mclose.h"
+#include "MALLOC.h"
+#include "core_math.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+#include "strsubst.h"
+#include "csvDefault.h"
+#include "utftolatin.h"
+// =============================================================================
+#define DEFAULT_CSV_WRITE_STRING_FORMAT "%s"
+#define DEFAULT_CSV_WRITE_DOUBLE_FORMAT "%.lg"
+#define PlusStr "+"
+#define LessStr "-"
+#define ComplexStr "i"
+#define EMPTY_STRING ""
+#if _MSC_VER
+#define MODEWFD "wb"
+#else
+#define MODEWFD "w"
+#endif
+#if _MSC_VER
+#define snprintf _snprintf
+#endif
+// =============================================================================
+#ifndef signbit
+static int signbit(double x)
+{
+ union
+ {
+ double d;
+ short s[4];
+ int i[2];
+ } u;
+
+ u.d = x;
+#if SIZEOF_INT == 4
+ return u.i[1] < 0;
+#else
+ return u.s[3] < 0;
+#endif
+}
+#endif /* signbit */
+// =============================================================================
+static int doConvertToLatin(void)
+{
+ const char *encoding = getCsvDefaultEncoding();
+ if (encoding)
+ {
+ return (strcmp(encoding, "iso-latin") == 0) ? 1 : 0;
+ }
+ return 0;
+}
+// =============================================================================
+csvWriteError csvWrite_double(const char *filename,
+ const double *pdValues, int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char *precisionFormat,
+ const char **headersLines,
+ int nbHeadersLines)
+{
+ FILE *fd = NULL;
+ int i = 0, j = 0;
+ char *expandedFilename = NULL;
+ int isIsoLatin = 0;
+
+ if (filename == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (pdValues == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (m < 0 || n < 0)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (separator == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (decimal == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (precisionFormat == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+
+ if (strcmp(separator, decimal) == 0)
+ {
+ return CSV_WRITE_SEPARATOR_DECIMAL_EQUAL;
+ }
+
+ expandedFilename = expandPathVariable((char*)filename);
+ wcfopen(fd , filename, MODEWFD);
+ if (expandedFilename)
+ {
+ FREE(expandedFilename);
+ expandedFilename = NULL;
+ }
+ if ( fd == (FILE *)NULL )
+ {
+ return CSV_WRITE_FOPEN_ERROR;
+ }
+
+ isIsoLatin = doConvertToLatin();
+
+ if ((headersLines) && (nbHeadersLines > 0))
+ {
+ for (i = 0; i < nbHeadersLines; i++)
+ {
+ if (isIsoLatin)
+ {
+ char *converted = utftolatin((char*)headersLines[i]);
+ if (converted)
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, converted);
+ FREE(converted);
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+ }
+
+ for (i = 0; i < m; i++)
+ {
+ for (j = 0; j < n; j++)
+ {
+ if (ISNAN(pdValues[i + m * j]))
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, NanString);
+ }
+ else if (finite(pdValues[i + m * j]))
+ {
+ char buffer[65535];
+ char *result = NULL;
+ sprintf(buffer, precisionFormat, pdValues[i + m * j]);
+ result = strsub(buffer, getCsvDefaultDecimal(), decimal);
+ if (result)
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, result);
+ FREE(result);
+ result = NULL;
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_DOUBLE_FORMAT, pdValues[i + m * j]);
+ }
+ }
+ else
+ {
+ if ( signbit(pdValues[i + m * j]) )
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, NegInfString);
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, InfString);
+ }
+ }
+ if (j + 1 < n)
+ {
+ fprintf(fd, "%s", separator);
+ }
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+
+ fclose(fd);
+ return CSV_WRITE_NO_ERROR;
+}
+// =============================================================================
+csvWriteError csvWrite_complex(const char *filename,
+ const double *pdValuesReal,
+ const double *pdValuesImag,
+ int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char *precisionFormat,
+ const char **headersLines,
+ int nbHeadersLines)
+{
+ FILE *fd = NULL;
+ int i = 0, j = 0;
+ char *expandedFilename = NULL;
+ int isIsoLatin = 0;
+
+ if (filename == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (pdValuesReal == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (pdValuesImag == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (m < 0 || n < 0)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (separator == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (decimal == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (precisionFormat == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+
+ if (strcmp(separator, decimal) == 0)
+ {
+ return CSV_WRITE_SEPARATOR_DECIMAL_EQUAL;
+ }
+
+ expandedFilename = expandPathVariable((char*)filename);
+ wcfopen(fd , filename, MODEWFD);
+ if (expandedFilename)
+ {
+ FREE(expandedFilename);
+ expandedFilename = NULL;
+ }
+ if ( fd == (FILE *)NULL )
+ {
+ return CSV_WRITE_FOPEN_ERROR;
+ }
+
+ isIsoLatin = doConvertToLatin();
+
+ if ((headersLines) && (nbHeadersLines > 0))
+ {
+ for (i = 0; i < nbHeadersLines; i++)
+ {
+ if (isIsoLatin)
+ {
+ const char *converted = utftolatin((char*)headersLines[i]);
+ if (converted)
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, converted);
+ FREE((char*)converted);
+ converted = NULL;
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+ }
+
+ for (i = 0; i < m; i++)
+ {
+ for (j = 0; j < n; j++)
+ {
+ char StringValue[65535];
+
+ double realValue = pdValuesReal[i + m * j];
+ double imagValue = pdValuesImag[i + m * j];
+ int hasReal = 0;
+
+ if (ISNAN(realValue))
+ {
+ strcpy(StringValue, NanString);
+ hasReal = 1;
+ }
+ else if (finite(realValue))
+ {
+ if ((realValue != 0) || (finite(imagValue) && (imagValue == 0)))
+ {
+ char buffer[65535];
+ char *result = NULL;
+
+ sprintf(buffer, precisionFormat, pdValuesReal[i + m * j]);
+ result = strsub(buffer, getCsvDefaultDecimal(), decimal);
+ if (result)
+ {
+ strncpy(StringValue, result, sizeof(StringValue) - 1);
+ FREE(result);
+ }
+ else
+ {
+ sprintf(StringValue, DEFAULT_CSV_WRITE_DOUBLE_FORMAT, pdValuesReal[i + m * j]);
+ }
+ hasReal = 1;
+ }
+ }
+ else
+ {
+ if (signbit(realValue))
+ {
+ strcpy(StringValue, NegInfString);
+ }
+ else
+ {
+ strcpy(StringValue, InfString);
+ }
+ hasReal = 1;
+ }
+
+ if (ISNAN(imagValue))
+ {
+ if (hasReal)
+ {
+ strcat(StringValue, PlusStr);
+ strcat(StringValue, NanString);
+ }
+ else
+ {
+ strcpy(StringValue, NanString);
+ }
+ strcat(StringValue, ComplexStr);
+ }
+ else if (finite(imagValue))
+ {
+ if (imagValue != 0)
+ {
+ char buffer[65535];
+ char *result = NULL;
+
+ if (hasReal && (imagValue > 0))
+ {
+ strcat(StringValue, PlusStr);
+ }
+ else if (imagValue < 0)
+ {
+ if (hasReal)
+ {
+ strcat(StringValue, LessStr);
+ }
+ else
+ {
+ strcpy(StringValue, LessStr);
+ }
+ }
+
+ sprintf(buffer, precisionFormat, fabs(imagValue));
+ result = strsub(buffer, getCsvDefaultDecimal(), decimal);
+ if (result)
+ {
+ if ((hasReal) || (imagValue < 0))
+ {
+ strncat(StringValue, result, sizeof(StringValue) - strlen(StringValue) - 1);
+ StringValue[sizeof(StringValue) - 1] = '\0';
+ }
+ else
+ {
+ strncpy(StringValue, result, sizeof(StringValue) - 1);
+ }
+ FREE(result);
+ }
+ else
+ {
+ sprintf(StringValue, DEFAULT_CSV_WRITE_DOUBLE_FORMAT, imagValue);
+ }
+ strcat(StringValue, ComplexStr);
+ }
+ }
+ else
+ {
+ if (hasReal && (signbit(imagValue) == 0))
+ {
+ strcat(StringValue, PlusStr);
+ }
+ else if (signbit(realValue) > 0)
+ {
+ if (hasReal)
+ {
+ strcat(StringValue, LessStr);
+ }
+ else
+ {
+ strcpy(StringValue, LessStr);
+ }
+ }
+ strcat(StringValue, InfString);
+ strcat(StringValue, ComplexStr);
+ }
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, StringValue);
+ if (j + 1 < n)
+ {
+ fprintf(fd, "%s", separator);
+ }
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+
+ fclose(fd);
+ return CSV_WRITE_NO_ERROR;
+}
+// =============================================================================
+csvWriteError csvWrite_string(const char *filename,
+ const char **pStrValues, int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char **headersLines,
+ int nbHeadersLines)
+{
+ FILE *fd = NULL;
+ int i = 0, j = 0;
+ char *expandedFilename = NULL;
+ int isIsoLatin = 0;
+
+ if (filename == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (pStrValues == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (m < 0 || n < 0)
+ {
+ return CSV_WRITE_ERROR;
+ }
+ if (separator == NULL)
+ {
+ return CSV_WRITE_ERROR;
+ }
+
+ if (strcmp(separator, decimal) == 0)
+ {
+ return CSV_WRITE_SEPARATOR_DECIMAL_EQUAL;
+ }
+
+ expandedFilename = expandPathVariable((char*)filename);
+ wcfopen(fd , filename, MODEWFD);
+ if (expandedFilename)
+ {
+ FREE(expandedFilename);
+ expandedFilename = NULL;
+ }
+ if ( fd == (FILE *)NULL )
+ {
+ return CSV_WRITE_FOPEN_ERROR;
+ }
+
+ isIsoLatin = doConvertToLatin();
+
+ if ((headersLines) && (nbHeadersLines > 0))
+ {
+ for (i = 0; i < nbHeadersLines; i++)
+ {
+ if (isIsoLatin)
+ {
+ const char *converted = utftolatin((char*)headersLines[i]);
+ if (converted)
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, converted);
+ FREE((char*)converted);
+ converted = NULL;
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, headersLines[i]);
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+ }
+
+ for (i = 0 ; i < m ; i++ )
+ {
+ for ( j = 0 ; j < n ; j++)
+ {
+ char *result = NULL;
+ result = strsub((char*)(pStrValues[i + m * j]), getCsvDefaultDecimal(), decimal);
+ if (result)
+ {
+ if (isIsoLatin)
+ {
+ char *converted = utftolatin(result);
+ if (converted)
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, converted);
+ FREE(converted);
+ converted = NULL;
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, result);
+ }
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, result);
+ }
+ FREE(result);
+ result = NULL;
+ }
+ else
+ {
+ fprintf(fd, DEFAULT_CSV_WRITE_STRING_FORMAT, pStrValues[i + m * j]);
+ }
+
+ if (j + 1 < n)
+ {
+ fprintf(fd, "%s", separator);
+ }
+ }
+ fprintf(fd, "%s", getCsvDefaultEOL());
+ }
+
+ fclose(fd);
+ return CSV_WRITE_NO_ERROR;
+}
+// =============================================================================
+
diff --git a/modules/spreadsheet/src/c/csvWrite.h b/modules/spreadsheet/src/c/csvWrite.h
new file mode 100755
index 000000000..0735f246b
--- /dev/null
+++ b/modules/spreadsheet/src/c/csvWrite.h
@@ -0,0 +1,60 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __CSV_WRITE_H__
+#define __CSV_WRITE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef enum {
+ CSV_WRITE_NO_ERROR = 0,
+ CSV_WRITE_FOPEN_ERROR = 1,
+ CSV_WRITE_ERROR = 2,
+ CSV_WRITE_SEPARATOR_DECIMAL_EQUAL = 3
+ }
+ csvWriteError;
+
+
+ csvWriteError csvWrite_double(const char *filename,
+ const double *pdValues, int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char *precisionFormat,
+ const char **headersLines,
+ int nbHeadersLines);
+
+ csvWriteError csvWrite_complex(const char *filename,
+ const double *pdValuesReal,
+ const double *pdValuesImag,
+ int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char *precisionFormat,
+ const char **headersLines,
+ int nbHeadersLines);
+
+ csvWriteError csvWrite_string(const char *filename,
+ const char **pStrValues, int m, int n,
+ const char *separator,
+ const char *decimal,
+ const char **headersLines,
+ int nbHeadersLines);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CSV_WRITE_H__ */
+// =============================================================================
+
diff --git a/modules/spreadsheet/src/c/getRange.c b/modules/spreadsheet/src/c/getRange.c
new file mode 100755
index 000000000..d96b61b9d
--- /dev/null
+++ b/modules/spreadsheet/src/c/getRange.c
@@ -0,0 +1,181 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include "MALLOC.h"
+#include "getRange.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+// =============================================================================
+#define SIZE_ARRAY_RANGE 4
+// =============================================================================
+static int getRangeSize(int *lowCoord, int *highCoord, int maxCoord);
+// =============================================================================
+void getSubIndices(const int *iRange, int * R1, int * R2, int * C1, int * C2 )
+{
+ *R1 = iRange[0];
+ *C1 = iRange[1];
+ *R2 = iRange[2];
+ *C2 = iRange[3];
+
+ return;
+}
+// =============================================================================
+int isValidRange(const int *iRange, int sizeArray)
+{
+ int i = 0;
+ int R1 = 0, C1 = 0, R2 = 0, C2 = 0;
+
+ if (iRange == NULL)
+ {
+ return 0;
+ }
+
+ getSubIndices(iRange, &R1, &R2, &C1, &C2 );
+
+ if (sizeArray != SIZE_ARRAY_RANGE)
+ {
+ return 0;
+ }
+
+ if (R1 <= 0)
+ {
+ return 0;
+ }
+ if (R2 <= 0)
+ {
+ return 0;
+ }
+ if (C1 <= 0)
+ {
+ return 0;
+ }
+ if (C2 <= 0)
+ {
+ return 0;
+ }
+ if (R1 > R2)
+ {
+ return 0;
+ }
+ if (C1 > C2)
+ {
+ return 0;
+ }
+
+ return 1;
+}
+// =============================================================================
+char **getRangeAsString(const char **pStrsValues,
+ int nbRows, int nbCols,
+ const int *iRange,
+ int *returnedNbRows, int *returnedNbCols)
+{
+ if (isValidRange(iRange, SIZE_ARRAY_RANGE))
+ {
+ int R1, C1, R2, C2;
+ int rangeSize;
+
+ getSubIndices(iRange, &R1, &R2, &C1, &C2);
+
+ *returnedNbRows = getRangeSize(&R1, &R2, nbRows);
+ *returnedNbCols = getRangeSize(&C1, &C2, nbCols);
+
+ rangeSize = (*returnedNbRows) * (*returnedNbCols);
+ if (rangeSize > 0)
+ {
+ char **newStrArray = (char**)MALLOC(sizeof(char*) * rangeSize);
+ if (newStrArray != NULL)
+ {
+ int i = 0;
+ int j = 0;
+ int k = 0;
+
+ for (j = C1 - 1 ; j < C2 ; j++)
+ {
+ for (i = R1 - 1 ; i < R2 ; i++ )
+ {
+ newStrArray[k] = strdup(pStrsValues[i + nbRows * j]);
+ k++;
+ }
+ }
+ }
+ return newStrArray;
+ }
+ // range is empty, calling function should raise an out of bound error
+ }
+ return NULL;
+}
+// =============================================================================
+complexArray *getRangeAsComplexArray(const complexArray *pComplex,
+ int nbRows, int nbCols,
+ const int *iRange,
+ int *returnedNbRows, int *returnedNbCols)
+{
+ if (isValidRange(iRange, SIZE_ARRAY_RANGE))
+ {
+ int R1, C1, R2, C2;
+ int rangeSize;
+
+ getSubIndices(iRange, &R1, &R2, &C1, &C2 );
+
+ *returnedNbRows = getRangeSize(&R1, &R2, nbRows);
+ *returnedNbCols = getRangeSize(&C1, &C2, nbCols);
+
+ rangeSize = (*returnedNbRows) * (*returnedNbCols);
+ if (rangeSize > 0)
+ {
+ complexArray *newComplexArray =
+ createComplexArrayEmpty(rangeSize);
+ if (newComplexArray != NULL)
+ {
+ int i = 0;
+ int j = 0;
+ int k = 0;
+
+ newComplexArray->isComplex = pComplex->isComplex;
+
+ for (j = C1 - 1 ; j < C2 ; j++)
+ {
+ for (i = R1 - 1 ; i < R2 ; i++)
+ {
+ newComplexArray->realPart[k] = pComplex->realPart[i + (nbRows * j)];
+ if (pComplex->isComplex)
+ {
+ newComplexArray->imagPart[k] = pComplex->imagPart[i + (nbRows * j)];
+ }
+ k++;
+ }
+ }
+ }
+ return newComplexArray;
+ }
+ // range is empty, calling function should raise an out of bound error
+ }
+ return NULL;
+}
+// =============================================================================
+static int getRangeSize(int *lowCoord, int *highCoord, int maxCoord)
+{
+ // IsValidRange has done all checks of range, except on right bound
+ if (*lowCoord <= maxCoord)
+ {
+ if (*highCoord > maxCoord)
+ {
+ *highCoord = maxCoord;
+ }
+ return *highCoord - *lowCoord + 1;
+ }
+ // lower coord is out of bound
+ return 0;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/getRange.h b/modules/spreadsheet/src/c/getRange.h
new file mode 100755
index 000000000..25a4efe57
--- /dev/null
+++ b/modules/spreadsheet/src/c/getRange.h
@@ -0,0 +1,47 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __GETRANGE_H__
+#define __GETRANGE_H__
+
+#include "doublecomplex.h"
+#include "complex_array.h"
+
+#define SIZE_RANGE_SUPPORTED 4
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ // Extract the strings in pStrsValues which are in the range.
+ char **getRangeAsString(const char **pStrsValues,
+ int nbRows, int nbCols,
+ const int *iRange,
+ int *returnedNbRows, int *returnedNbCols);
+
+
+ // Extract the double complexes in pComplex which are in the range.
+ complexArray *getRangeAsComplexArray(const complexArray *pComplex,
+ int nbRows, int nbCols,
+ const int *iRange,
+ int *returnedNbRows, int *returnedNbCols);
+
+
+ // Returns 1 if the range is valid, returns 0 if not.
+ int isValidRange(const int *range, int sizeArray);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __GETRANGE_H__ */
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo
new file mode 100755
index 000000000..7d1bf7fd6
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-checkCsvWriteFormat.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-checkCsvWriteFormat.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvDefault.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvDefault.lo
new file mode 100755
index 000000000..4732ce50d
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvDefault.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-csvDefault.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-csvDefault.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvRead.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvRead.lo
new file mode 100755
index 000000000..227177c0c
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvRead.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-csvRead.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-csvRead.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvWrite.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvWrite.lo
new file mode 100755
index 000000000..9f4a083be
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-csvWrite.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-csvWrite.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-csvWrite.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-getRange.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-getRange.lo
new file mode 100755
index 000000000..9fa24ec17
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-getRange.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-getRange.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-getRange.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-splitLine.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-splitLine.lo
new file mode 100755
index 000000000..8a190d6da
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-splitLine.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-splitLine.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-splitLine.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-utftolatin.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-utftolatin.lo
new file mode 100755
index 000000000..eae1eed66
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-utftolatin.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-utftolatin.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-utftolatin.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/libscispreadsheet_algo_la-xls.lo b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-xls.lo
new file mode 100755
index 000000000..d3c479af4
--- /dev/null
+++ b/modules/spreadsheet/src/c/libscispreadsheet_algo_la-xls.lo
@@ -0,0 +1,12 @@
+# src/c/libscispreadsheet_algo_la-xls.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-xls.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/.deps/.dirstamp b/modules/spreadsheet/src/c/ripole/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/.dirstamp
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bt-int.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bt-int.Plo
new file mode 100755
index 000000000..d75e17ea0
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bt-int.Plo
@@ -0,0 +1,115 @@
+src/c/ripole/libscispreadsheet_algo_la-bt-int.lo: src/c/ripole/bt-int.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h src/c/ripole/bt-int.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+src/c/ripole/bt-int.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bytedecoders.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bytedecoders.Plo
new file mode 100755
index 000000000..3bf68bb7c
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-bytedecoders.Plo
@@ -0,0 +1,54 @@
+src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo: \
+ src/c/ripole/bytedecoders.c /usr/include/stdc-predef.h \
+ /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/c/ripole/bytedecoders.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/c/ripole/bytedecoders.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-logger.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-logger.Plo
new file mode 100755
index 000000000..ddb319ba8
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-logger.Plo
@@ -0,0 +1,187 @@
+src/c/ripole/libscispreadsheet_algo_la-logger.lo: src/c/ripole/logger.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/syslog.h \
+ /usr/include/x86_64-linux-gnu/sys/syslog.h \
+ /usr/include/x86_64-linux-gnu/bits/syslog-path.h \
+ /usr/include/x86_64-linux-gnu/bits/syslog.h /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/ctype.h ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ src/c/ripole/logger.h ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/charEncoding.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h \
+ ../../modules/core/includes/BOOL.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/syslog.h:
+
+/usr/include/x86_64-linux-gnu/sys/syslog.h:
+
+/usr/include/x86_64-linux-gnu/bits/syslog-path.h:
+
+/usr/include/x86_64-linux-gnu/bits/syslog.h:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/ctype.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+src/c/ripole/logger.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/charEncoding.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+../../modules/core/includes/BOOL.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ole.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ole.Plo
new file mode 100755
index 000000000..6058126cd
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ole.Plo
@@ -0,0 +1,195 @@
+src/c/ripole/libscispreadsheet_algo_la-ole.lo: src/c/ripole/ole.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/ctype.h \
+ /usr/include/xlocale.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ src/c/ripole/logger.h src/c/ripole/pldstr.h src/c/ripole/bt-int.h \
+ src/c/ripole/bytedecoders.h src/c/ripole/olestream-unwrap.h \
+ src/c/ripole/ole.h ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/localization/includes/charEncoding.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/fileio/includes/createdirectory.h \
+ ../../modules/fileio/includes/dynlib_fileio.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/ctype.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+src/c/ripole/logger.h:
+
+src/c/ripole/pldstr.h:
+
+src/c/ripole/bt-int.h:
+
+src/c/ripole/bytedecoders.h:
+
+src/c/ripole/olestream-unwrap.h:
+
+src/c/ripole/ole.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/localization/includes/charEncoding.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/fileio/includes/createdirectory.h:
+
+../../modules/fileio/includes/dynlib_fileio.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-olestream-unwrap.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-olestream-unwrap.Plo
new file mode 100755
index 000000000..6958cfb9e
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-olestream-unwrap.Plo
@@ -0,0 +1,185 @@
+src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo: \
+ src/c/ripole/olestream-unwrap.c /usr/include/stdc-predef.h \
+ /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/ctype.h \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ src/c/ripole/logger.h src/c/ripole/pldstr.h src/c/ripole/bytedecoders.h \
+ src/c/ripole/olestream-unwrap.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/charEncoding.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h \
+ ../../modules/core/includes/BOOL.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/ctype.h:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+src/c/ripole/logger.h:
+
+src/c/ripole/pldstr.h:
+
+src/c/ripole/bytedecoders.h:
+
+src/c/ripole/olestream-unwrap.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/charEncoding.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+../../modules/core/includes/BOOL.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-pldstr.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-pldstr.Plo
new file mode 100755
index 000000000..0f8349e91
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-pldstr.Plo
@@ -0,0 +1,146 @@
+src/c/ripole/libscispreadsheet_algo_la-pldstr.lo: src/c/ripole/pldstr.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/ctype.h \
+ src/c/ripole/logger.h src/c/ripole/pldstr.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/ctype.h:
+
+src/c/ripole/logger.h:
+
+src/c/ripole/pldstr.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
diff --git a/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ripole.Plo b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ripole.Plo
new file mode 100755
index 000000000..90f6fc7d7
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.deps/libscispreadsheet_algo_la-ripole.Plo
@@ -0,0 +1,150 @@
+src/c/ripole/libscispreadsheet_algo_la-ripole.lo: src/c/ripole/ripole.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/ctype.h \
+ src/c/ripole/logger.h src/c/ripole/pldstr.h src/c/ripole/ole.h \
+ src/c/ripole/ripole.h ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+/usr/include/ctype.h:
+
+src/c/ripole/logger.h:
+
+src/c/ripole/pldstr.h:
+
+src/c/ripole/ole.h:
+
+src/c/ripole/ripole.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
diff --git a/modules/spreadsheet/src/c/ripole/.dirstamp b/modules/spreadsheet/src/c/ripole/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.dirstamp
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bt-int.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bt-int.o
new file mode 100755
index 000000000..9ba2120cc
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bt-int.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bytedecoders.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bytedecoders.o
new file mode 100755
index 000000000..88acbd579
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-bytedecoders.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-logger.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-logger.o
new file mode 100755
index 000000000..a80052c19
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-logger.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ole.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ole.o
new file mode 100755
index 000000000..9c45581d3
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ole.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-olestream-unwrap.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-olestream-unwrap.o
new file mode 100755
index 000000000..0f3bbc33c
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-olestream-unwrap.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-pldstr.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-pldstr.o
new file mode 100755
index 000000000..d0cec33d9
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-pldstr.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ripole.o b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ripole.o
new file mode 100755
index 000000000..07358d81c
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/.libs/libscispreadsheet_algo_la-ripole.o
Binary files differ
diff --git a/modules/spreadsheet/src/c/ripole/LICENSE.ripole b/modules/spreadsheet/src/c/ripole/LICENSE.ripole
new file mode 100755
index 000000000..1f85bfb46
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/LICENSE.ripole
@@ -0,0 +1,33 @@
+Copyright (c) 2003, PLD
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+* Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer.
+
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+* Neither the name of the PLD nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/modules/spreadsheet/src/c/ripole/bt-int.c b/modules/spreadsheet/src/c/ripole/bt-int.c
new file mode 100755
index 000000000..fc01f3132
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/bt-int.c
@@ -0,0 +1,130 @@
+/*--------------------------------------------------------------------------*/
+#include <stdio.h>
+#include <stdlib.h>
+/*--------------------------------------------------------------------------*/
+#include "MALLOC.h"
+#include "bt-int.h"
+/*--------------------------------------------------------------------------*/
+int BTI_init( struct bti_node **n )
+{
+ *n = NULL;
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
+int BTI_add( struct bti_node **n, int value )
+{
+ int collision = 0;
+ int dir = 0;
+ struct bti_node *p = NULL, *node = *n;
+
+ /* fprintf(stdout,"Adding %d to %p\n", value, *n);*/
+ while (node != NULL)
+ {
+ if (value > node->data)
+ {
+ p = node;
+ dir = 1;
+ node = node->r;
+ }
+ else if (value < node->data)
+ {
+ p = node;
+ dir = -1;
+ node = node->l;
+ }
+ else if (value == node->data)
+ {
+ collision = 1;
+ break;
+ }
+ }
+
+ if (collision == 0)
+ {
+ struct bti_node *leaf = NULL;
+
+ leaf = MALLOC(sizeof(struct bti_node));
+ if (leaf == NULL)
+ {
+ return -1;
+ }
+
+ leaf->data = value;
+ leaf->l = leaf->r = NULL;
+
+ if (p != NULL)
+ {
+ switch (dir)
+ {
+ case 1:
+ p->r = leaf;
+ break;
+ case -1:
+ p->l = leaf;
+ break;
+ }
+ }
+ else
+ {
+ *n = leaf;
+ }
+ }
+
+ return collision;
+}
+/*--------------------------------------------------------------------------*/
+int BTI_dump( struct bti_node **n )
+{
+ struct bti_node *node = NULL;
+
+ node = *n;
+
+ if (node->l)
+ {
+ BTI_dump(&(node->l));
+ }
+ if (*n)
+ {
+ fprintf(stdout, "%d, ", node->data);
+ }
+ if (node->r)
+ {
+ BTI_dump(&(node->r));
+ }
+
+ return 0;
+
+}
+/*--------------------------------------------------------------------------*/
+int BTI_done( struct bti_node **n )
+{
+ struct bti_node *node = NULL ;
+
+ if (n == NULL)
+ {
+ return 0;
+ }
+ if (*n == NULL)
+ {
+ return 0;
+ }
+
+ node = *n;
+
+ if (node->l)
+ {
+ BTI_done(&(node->l));
+ }
+ if (node->r)
+ {
+ BTI_done(&(node->r));
+ }
+ if (*n)
+ {
+ FREE(*n);
+ *n = NULL;
+ }
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/src/c/ripole/bt-int.h b/modules/spreadsheet/src/c/ripole/bt-int.h
new file mode 100755
index 000000000..202d93820
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/bt-int.h
@@ -0,0 +1,15 @@
+#ifndef __BT_INT__
+#define __BT_INT__
+
+struct bti_node
+{
+ int data;
+ struct bti_node *l, *r;
+};
+
+int BTI_init( struct bti_node **n );
+int BTI_add( struct bti_node **n, int value );
+int BTI_dump( struct bti_node **n );
+int BTI_done( struct bti_node **n );
+
+#endif
diff --git a/modules/spreadsheet/src/c/ripole/bytedecoders.c b/modules/spreadsheet/src/c/ripole/bytedecoders.c
new file mode 100755
index 000000000..24865c064
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/bytedecoders.c
@@ -0,0 +1,77 @@
+#include <stdio.h>
+#include "bytedecoders.h"
+
+/*-----------------------------------------------------------------\
+ Function Name : int
+ Returns Type : unsigned
+ ----Parameter List
+ 1. get_byte_value( unsigned char *start ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int get_1byte_value( unsigned char *start )
+{
+ return (int) * start;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : int
+ Returns Type : unsigned
+ ----Parameter List
+ 1. get_ushort_value( unsigned char *start ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int get_2byte_value( unsigned char *start )
+{
+ int value = 0;
+
+ value = *start | ((*(start + 1)) << 8);
+
+ return value;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : int
+ Returns Type : unsigned
+ ----Parameter List
+ 1. get_ulong_value( unsigned char *start ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int get_4byte_value(unsigned char *start )
+{
+ int value = 0;
+
+ value = (*start)
+ | ((*(start + 1)) << 8)
+ | ((*(start + 2)) << 16)
+ | ((*(start + 3)) << 24);
+
+ /* printf("String=0x%x %x %x %x:%u = %d\n", *start, *(start +1), *(start +2), *(start +3), *(start +3), value);*/
+
+ return value;
+}
+
+
diff --git a/modules/spreadsheet/src/c/ripole/bytedecoders.h b/modules/spreadsheet/src/c/ripole/bytedecoders.h
new file mode 100755
index 000000000..3a53e951f
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/bytedecoders.h
@@ -0,0 +1,26 @@
+/*
+** -*- C -*-
+**
+** bytedecoders.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Oct 17 13:54:15 2007 bruno
+** Last update Wed Oct 17 16:51:47 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __BYTEDECODERS_H__
+#define __BYTEDECODERS_H__
+
+/** @TODO : Comments ?? */
+int get_1byte_value(unsigned char *start );
+
+/** @TODO : Comments ?? */
+int get_2byte_value(unsigned char *start );
+
+/** @TODO : Comments ?? */
+int get_4byte_value(unsigned char *start );
+
+
+#endif /* __BYTEDECODERS_H__ */
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bt-int.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bt-int.lo
new file mode 100755
index 000000000..16c272b25
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bt-int.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-bt-int.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-bt-int.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo
new file mode 100755
index 000000000..8d788052e
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-bytedecoders.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-bytedecoders.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-logger.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-logger.lo
new file mode 100755
index 000000000..fced0d284
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-logger.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-logger.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-logger.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ole.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ole.lo
new file mode 100755
index 000000000..7e1db6854
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ole.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-ole.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-ole.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo
new file mode 100755
index 000000000..50c1fa4e0
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-olestream-unwrap.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-olestream-unwrap.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-pldstr.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-pldstr.lo
new file mode 100755
index 000000000..d74c2e337
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-pldstr.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-pldstr.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-pldstr.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ripole.lo b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ripole.lo
new file mode 100755
index 000000000..8b731029f
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/libscispreadsheet_algo_la-ripole.lo
@@ -0,0 +1,12 @@
+# src/c/ripole/libscispreadsheet_algo_la-ripole.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscispreadsheet_algo_la-ripole.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/spreadsheet/src/c/ripole/logger.c b/modules/spreadsheet/src/c/ripole/logger.c
new file mode 100755
index 000000000..31ad2896b
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/logger.c
@@ -0,0 +1,379 @@
+
+/* Abstract logging system used to facilitate multiple modes*/
+/* of logging*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifndef _MSC_VER
+#include <syslog.h>
+#endif
+#include <errno.h>
+#include <stdarg.h>
+#include <ctype.h>
+
+#include "localization.h"
+#include "logger.h"
+#include "MALLOC.h"
+#include "charEncoding.h"
+
+//#define SYSLOG_ENABLE 1
+
+#ifndef _MSC_VER
+static int _LOGGER_mode = _LOGGER_SYSLOG;
+static int _LOGGER_syslog_mode = LOG_MAIL | LOG_INFO;
+#else
+static int _LOGGER_mode = _LOGGER_STDERR;
+static int _LOGGER_syslog_mode = 0;
+#endif
+
+static FILE *_LOGGER_outf;
+
+struct LOGGER_globals
+{
+ int wrap;
+ int wraplength;
+};
+
+/* Create and Initialise the global structure for LOGGER,*/
+/* we init it to have NO wrapping.*/
+
+static struct LOGGER_globals LOGGER_glb = { 0, 0 };
+
+#ifdef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_get_file ID:1
+Purpose: Returns the pointer to the file being used to output logs to
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+FILE *LOGGER_get_file( void )
+{
+ return _LOGGER_outf;
+}
+
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_output_mode ID:1
+Purpose: Sets the message/log output method, ie, stderr, stdout
+or syslog
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_output_mode( int modechoice )
+{
+ _LOGGER_mode = modechoice;
+ return 0;
+}
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_output_file ID:1
+Purpose: Sets the output file for when _LOGGER_mode is set to
+_LOGGER_file
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_output_file( FILE *f )
+{
+ _LOGGER_outf = f;
+ return 0;
+}
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_syslog_mode ID:1
+Purpose: Sets the mode that messaging to the syslog daemon will
+be sent as (ie, LOG_MAIL|LOG_INFO)
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_syslog_mode( int syslogmode )
+{
+ _LOGGER_syslog_mode = syslogmode;
+ return 0;
+}
+
+
+
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_logfile ID:1
+Purpose: Opens and setups the internal Log file file pointer with the
+log file as given by lfname
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_logfile( char *lfname )
+{
+ int result = 0;
+
+ wcfopen(_LOGGER_outf, lfname, "a");
+ if (!_LOGGER_outf)
+ {
+#if !defined(_MSC_VER) && defined(SYSLOG_ENABLE)
+ syslog(1, _("LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)"), lfname, strerror(errno));
+#else
+ fprintf(stderr, _("LOGGER_set_logfile: ERROR - Cannot open logfile '%s' (%s)\n"), lfname, strerror(errno));
+#endif
+ result = -1;
+ }
+
+ return result;
+}
+
+
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_wraplength ID:1
+Purpose: Sets the character count at which LOGGER will break a line
+Input: int length: Positive int indicating number of chracters at which to wrap at
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_wraplength( int length )
+{
+ if ( length >= 0 )
+ {
+ LOGGER_glb.wraplength = length;
+ }
+
+ return LOGGER_glb.wraplength;
+}
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_set_wrap ID:1
+Purpose: Set log output wrapping to on or off
+Input: int level: 0 = no wrap, > 0 = wrap.
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_set_wrap( int level )
+{
+ if ( level >= 0 )
+ {
+ LOGGER_glb.wrap = level;
+ }
+
+ return LOGGER_glb.wrap;
+}
+
+
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_close_logfile ID:1
+Purpose: Closes the modules log file pointer.
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_close_logfile( void )
+{
+ int result = 0;
+
+ if (_LOGGER_outf)
+ {
+ fclose(_LOGGER_outf);
+ }
+
+ return result;
+}
+
+
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_clean_output ID:1
+Purpose: Checks through the output string for any characters which could cause
+potential 'isssues' with the data writing calls, items such as stray non-escaped
+% characters can cause havoc.
+Input: char *string: Raw string
+int maxsize: Maximum available buffer size for this string to expand to
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_clean_output( char *string, char **buffer )
+{
+ char *newstr;
+ char *p, *q;
+ char *next_space;
+
+ int pc;
+ int slen = (int)strlen( string );
+ int line_size;
+ int maxsize = slen * 2;
+
+ /* First up, allocate maxsize bytes for a temporary new string.*/
+ newstr = MALLOC(slen * 2 + 1);
+ if ( newstr == NULL )
+ {
+ /* FIXME - Report an error here ... to -somewhere-*/
+ return -1;
+ }
+
+ p = newstr;
+ q = string;
+ pc = 0;
+ line_size = 0;
+
+ while (slen--)
+ {
+
+ /* Do we need to apply any wrapping to the output? If so then we*/
+ /* shall embark on a journey of strange space and distance*/
+ /* evaluations to determine if we should wrap now or later*/
+
+ if ( LOGGER_glb.wrap > 0 )
+ {
+ if (isspace((int)*q))
+ {
+ next_space = strpbrk( (q + 1), "\t\n\v " );
+ if (next_space != NULL)
+ {
+ if ((line_size + (next_space - q)) >= LOGGER_glb.wraplength)
+ {
+ *p = '\n';
+ p++;
+ pc++;
+ line_size = 0;
+ }
+ }
+ }
+
+ if ( line_size >= LOGGER_glb.wraplength )
+ {
+ *p = '\n';
+ p++;
+ pc++;
+ line_size = 0;
+ }
+ }
+
+ /* If the string has a % in it, then we need to encode it as*/
+ /* a DOUBLE % symbol.*/
+
+ if (*q == '%')
+ {
+ /* if (strchr("fdlsxXn",*(q+1)))*/
+ /* {*/
+ *p = '%';
+ p++;
+ pc++;
+ /* }*/
+ }
+
+ /* Copy the character of the string in*/
+ *p = *q;
+
+ /* Move everything along.*/
+ q++;
+ p++;
+ pc++;
+ line_size++;
+
+ if ( pc > (maxsize - 1) )
+ {
+ break;
+ }
+ }
+
+ *p = '\0';
+
+ /* This will have to be deallocated later!*/
+ if (newstr)
+ {
+ *buffer = newstr;
+ }
+
+ return 0;
+}
+
+/*------------------------------------------------------------------------
+Procedure: LOGGER_log ID:1
+Purpose: Logs the params as supplied to the required
+output as defined by LOGGER_set_output
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int LOGGER_log( char *format, ...)
+{
+ va_list ptr;
+ char tmpoutput[10240];
+ char linebreak[] = "\n";
+ char nolinebreak[] = "";
+ char *lineend;
+ char *output;
+
+
+ /* get our variable arguments*/
+ va_start(ptr, format);
+
+ /* produce output, and spit to the log file*/
+#ifdef NO_SNPRINTF
+ vsprintf(tmpoutput, format, ptr);
+#else
+ vsnprintf(tmpoutput, 10240, format, ptr);
+#endif
+
+ LOGGER_clean_output( tmpoutput, &output );
+
+ if ( output[strlen(output) - 1] == '\n' )
+ {
+ lineend = nolinebreak;
+ }
+ else
+ {
+ lineend = linebreak;
+ }
+
+ if ( output[strlen(output) - 1] == '\n' )
+ {
+ lineend = nolinebreak;
+ }
+ else
+ {
+ lineend = linebreak;
+ }
+
+ /* Send the output to the appropriate output destination*/
+ switch (_LOGGER_mode)
+ {
+ case _LOGGER_SYSLOG:
+#if !defined(_MSC_VER) && defined(SYSLOG_ENABLE)
+ syslog(_LOGGER_syslog_mode, "%s", output);
+ break;
+#endif
+ case _LOGGER_STDERR:
+ fprintf(stderr, "%s%s", output, lineend );
+ break;
+
+ case _LOGGER_STDOUT:
+ fprintf(stdout, "%s%s", output, lineend);
+ fflush(stdout);
+ break;
+ case _LOGGER_FILE:
+ fprintf(_LOGGER_outf, "%s%s", output, lineend);
+ fflush(_LOGGER_outf);
+ break;
+ default:
+ fprintf(stdout, _("LOGGER-Default: %s%s"), output, lineend);
+ }
+
+
+ if (output)
+ {
+ FREE(output);
+ }
+
+ return 0;
+}
+
+
+
+
diff --git a/modules/spreadsheet/src/c/ripole/logger.h b/modules/spreadsheet/src/c/ripole/logger.h
new file mode 100755
index 000000000..96e98c608
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/logger.h
@@ -0,0 +1,29 @@
+
+#ifndef __LOGGER__
+#define __LOGGER__
+/* LOGGER.h */
+
+#define _LOGGER_STDERR 1
+#define _LOGGER_STDOUT 2
+#define _LOGGER_FILE 3
+/* #ifndef _MSC_VER */
+#define _LOGGER_SYSLOG 4
+/* #endif */
+
+#ifndef FL
+#define FL __FILE__,__LINE__
+#endif
+
+int LOGGER_log( char *format, ...);
+int LOGGER_set_output_mode( int modechoice );
+int LOGGER_set_output_file( FILE *f );
+int LOGGER_set_syslog_mode( int syslogmode );
+int LOGGER_set_logfile( char *lfname );
+int LOGGER_set_wraplength( int length );
+int LOGGER_set_wrap( int level );
+
+int LOGGER_close_logfile( void );
+FILE *LOGGER_get_file( void );
+
+int LOGGER_clean_output( char *string, char **buffer );
+#endif
diff --git a/modules/spreadsheet/src/c/ripole/ole.c b/modules/spreadsheet/src/c/ripole/ole.c
new file mode 100755
index 000000000..03e85349d
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/ole.c
@@ -0,0 +1,2136 @@
+#ifdef _MSC_VER
+#include <Windows.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <errno.h>
+
+#include "logger.h"
+#include "pldstr.h"
+#include "bt-int.h"
+#include "bytedecoders.h"
+#include "olestream-unwrap.h"
+#include "ole.h"
+#include "localization.h"
+#include "charEncoding.h"
+#include "createdirectory.h"
+/** Sector ID values (predefined) **/
+#define OLE_SECTORID_FREE -1 /** Unallocated sector **/
+#define OLE_SECTORID_ENDOFCHAIN -2 /** Sector marks the end of the a sector-ID chain **/
+#define OLE_SECTORID_SAT -3 /** Sector used by sector allocation Table **/
+#define OLE_SECTORID_MSAT -4 /** Sector used by master sector allocation Table **/
+
+#include "MALLOC.h" /* MALLOC */
+
+/* Main header accessors*/
+#define header_id(x) ((x) +0)
+#define header_clid(x) ((x) +0x08)
+#define header_minor_version(x) ((x) +0x18)
+#define header_dll_version(x) ((x) +0x1a)
+#define header_byte_order(x) ((x) +0x1c)
+#define header_sector_shift(x) ((x) +0x1e)
+#define header_mini_sector_shift(x) ((x) +0x20)
+#define header_fat_sector_count(x) ((x) +0x2c)
+#define header_directory_stream_start_sector(x) ((x) +0x30)
+#define header_mini_cutoff_size(x) ((x) +0x38)
+#define header_mini_fat_start(x) ((x) +0x3c)
+#define header_mini_fat_sector_count(x) ((x) +0x40)
+#define header_dif_start_sector(x) ((x) +0x44)
+#define header_dif_sector_count(x) ((x) +0x48)
+#define header_fat_sectors(x) ((x) +0x4c)
+
+/*Property Storage accessor macros*/
+#define pps_rawname(x) ((x) +0)
+#define pps_sizeofname(x) ((x) +0x40)
+#define pps_type(x) ((x) +0x42)
+#define pps_previouspps(x) ((x) +0x44)
+#define pps_nextpps(x) ((x) +0x48)
+#define pps_directorypps(x) ((x) +0x4c)
+#define pps_time1seconds(x) ((x) +0x64)
+#define pps_time1days(x) ((x) +0x68)
+#define pps_time2seconds(x) ((x) +0x6c)
+#define pps_time2days(x) ((x) +0x70)
+#define pps_propertystart(x) ((x) +0x74)
+#define pps_sizeofproperty(x) ((x) +0x78)
+
+/* Type lengths*/
+#define LEN_BYTE 1
+#define LEN_USHORT 2
+#define LEN_ULONG 4
+
+/* Directory types*/
+#define STGTY_INVALID 0
+#define STGTY_STORAGE 1
+#define STGTY_STREAM 2
+#define STGTY_LOCKBYTES 3
+#define STGTY_PROPERTY 4
+#define STGTY_ROOT 5
+
+/* Directory tag colours*/
+#define DE_RED 0
+#define DE_BLACK 1
+
+#define DOLE if (OLE_DNORMAL(ole->debug))
+#define VOLE if (ole->verbose)
+
+unsigned char OLE_id_v2[] = { 0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1 };
+unsigned char OLE_id_v1[] = { 0x0e, 0x11, 0xfc, 0x0d, 0xd0, 0xcf, 0x11, 0xe0 };
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_version
+Returns Type : int
+----Parameter List
+1. void ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_version(void)
+{
+ fprintf(stderr, _("ripOLE: %s\n"), LIBOLE_VERSION);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_init
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+20041127-2029:PLD: Added file_size initialization
+\------------------------------------------------------------------*/
+int OLE_init(struct OLE_object *ole)
+{
+ ole->debug = 0;
+ ole->verbose = 0;
+ ole->quiet = 0;
+ ole->filename_report_fn = NULL;
+ ole->f = NULL;
+ ole->file_size = 0;
+
+ ole->FAT = NULL;
+ ole->FAT_limit = NULL;
+ ole->miniFAT = NULL;
+ ole->miniFAT_limit = NULL;
+
+ ole->header_block[0] = '\0';
+ ole->ministream = NULL;
+ ole->properties = NULL;
+
+ ole->header.sector_shift = 0;
+ ole->header.mini_sector_shift = 0;
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_dir_init
+Returns Type : int
+----Parameter List
+1. struct OLE_directory_entry *dir ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_dir_init(struct OLE_directory_entry *dir)
+{
+ memset(dir->element_name, '\0', OLE_DIRECTORY_ELEMENT_NAME_SIZE);
+ dir->element_name_byte_count = 0;
+
+ dir->element_type = 0;
+ dir->element_colour = 0;
+
+ dir->left_child = 0;
+ dir->right_child = 0;
+ dir->root = 0;
+
+ dir->class[0] = '\0';
+ dir->userflags = 0;
+ dir->timestamps[0] = '\0';
+ dir->start_sector = 0;
+ dir->stream_size = 0;
+
+ return 0;
+};
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_set_verbose
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int level ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_set_verbose(struct OLE_object *ole, int level)
+{
+ ole->verbose = level;
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_set_quiet
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int level ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_set_quiet(struct OLE_object *ole, int level)
+{
+ ole->quiet = level;
+ ole->verbose = 0;
+ ole->debug = 0;
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_set_debug
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int level ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_set_debug(struct OLE_object *ole, int level)
+{
+ ole->debug = level;
+ if (ole->debug > 0)
+ {
+ LOGGER_log(_("%s:%d:OLE_set_debug: Debug level set to %d"), FL, ole->debug);
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_set_save_unknown_streams
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int level ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_set_save_unknown_streams(struct OLE_object *ole, int level)
+{
+ ole->save_unknown_streams = level;
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_sectorpos
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int SID ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+Given a sector ID, this function will return the file position
+offset.
+
+Assumes that the offset for the file starts at 512 bytes (which
+is the size of the OLE header)
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_sectorpos(struct OLE_object *ole, int SID)
+{
+ int pos = 0;
+
+ pos = 512 + (SID * ole->header.sector_size);
+
+ return pos;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_get_block
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int block_index, Block indexes / Sector ID's are signed ints.
+3. unsigned char *block_buffer ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_get_block(struct OLE_object *ole, int block_index, unsigned char *block_buffer)
+{
+ if (block_buffer == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLE_get_block:ERROR: Block buffer is NULL"), FL);
+ return -1;
+ }
+
+ if (ole->f != NULL)
+ {
+ int read_count = 0;
+ int fseek_result = 0;
+ size_t offset = 0;
+ unsigned char *bb = NULL;
+
+ bb = MALLOC(sizeof(unsigned char) * ole->header.sector_size);
+ if (bb == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLE_get_block:ERROR: Cannot allocate %d bytes for OLE block"), FL, ole->header.sector_size);
+ return -1;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: BlockIndex=%d, Buffer=0x%x", FL, block_index, block_buffer);
+
+ /*20051211-2343:PLD: offset = (block_index +1) << ole->header.sector_shift; */
+ offset = OLE_sectorpos(ole, block_index);
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: Read offset in file = 0x%x size to read= 0x%x", FL, offset, ole->header.sector_size);
+
+ fseek_result = fseek(ole->f, (long)offset, SEEK_SET);
+ if (fseek_result != 0)
+ {
+ if (bb != NULL)
+ {
+ FREE(bb);
+ bb = NULL;
+ }
+ LOGGER_log(_("%s:%d:OLE_get_block:ERROR: Seek failure (block=%d:%d)"), FL, block_index, offset, strerror(errno));
+ return OLEER_GET_BLOCK_SEEK;
+ }
+
+ /*read_count = fread(block_buffer, sizeof(unsigned char), ole->header.sector_size, ole->f); */
+ read_count = (int)fread(bb, sizeof(unsigned char), ole->header.sector_size, ole->f);
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: Read %d byte of data", FL, read_count);
+
+ if (read_count != (int)ole->header.sector_size)
+ {
+ if (bb != NULL)
+ {
+ FREE(bb);
+ bb = NULL;
+ }
+ VOLE LOGGER_log(_("%s:%d:Mismatch in bytes read. Requested %d, got %d\n"), FL, ole->header.sector_size, read_count);
+
+ return OLEER_GET_BLOCK_READ;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: Copying over memory read from file", FL);
+
+ memcpy(block_buffer, bb, ole->header.sector_size);
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: memory block copied to block_buffer", FL);
+
+ /* We're now done with BB, dispose of it */
+ if (bb)
+ {
+ FREE(bb);
+ bb = NULL;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: Disposed of temporary bb block", FL);
+
+ }
+ else
+ {
+ LOGGER_log(_("%s:%d:OLE_get_block:ERROR: OLE file is closed\n"), FL);
+ return -1;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_get_block:DEBUG: Done", FL);
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_get_miniblock
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. unsigned int block_index,
+3. unsigned char *block_buffer ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_get_miniblock(struct OLE_object *ole, int block_index, unsigned char *block_buffer)
+{
+ /* This code may refer memory outside of the allocated one for ole->ministream *
+ * in case of VBA Streams Serge Steer 26/01/2007 */
+ if (ole->ministream)
+ {
+ int offset = block_index << ole->header.mini_sector_shift;
+
+ memcpy(block_buffer, ole->ministream + offset, ole->header.mini_sector_size);
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_dbstosbs
+Returns Type : int
+----Parameter List
+1. char *raw_string,
+2. size_t char_count,
+3. char *clean_string ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_dbstosbs(char *raw_string, size_t byte_count, char *clean_string, int clean_string_len)
+{
+ char *limit = raw_string + byte_count - 1;
+
+ clean_string_len--;
+
+ while ((raw_string < limit) && (byte_count > 0) && (byte_count--) && (clean_string_len--))
+ {
+ int v = (char) * raw_string;
+
+ if (isprint(v))
+ {
+ *clean_string = (char)v;
+ clean_string++;
+ }
+
+ raw_string += 2;
+ }
+ *clean_string = '\0';
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_print_string
+Returns Type : int
+----Parameter List
+1. char *string,
+2. size_t length ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_print_string(char *string, size_t char_count)
+{
+ while (char_count--)
+ {
+ printf("%c", *string);
+ string += 2;
+ }
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_print_sector
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. unsigned char *sector ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+static int OLE_print_sector(struct OLE_object *ole, unsigned char *sector, unsigned int bytes)
+{
+ int current_byte;
+ int ubytes = bytes;
+
+ printf("\n");
+ for (current_byte = 0; current_byte < ubytes; current_byte++)
+ {
+ printf("%02X ", *(sector + current_byte));
+ if (((current_byte + 1) % 32) == 0)
+ {
+ int j;
+
+ for (j = current_byte - 31; j <= current_byte; j++)
+ {
+ if (isalnum(*(sector + j)))
+ {
+ printf("%c", *(sector + j));
+ }
+ else
+ {
+ printf(".");
+ }
+ }
+ printf("\n");
+ }
+ }
+ printf("\n");
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_is_OLE_file
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_is_file_OLE(struct OLE_object *ole)
+{
+
+ if (memcmp(OLE_id_v1, ole->header_block, sizeof(OLE_id_v1)) == 0)
+ {
+ return 1;
+ }
+ if (memcmp(OLE_id_v2, ole->header_block, sizeof(OLE_id_v2)) == 0)
+ {
+ return 1;
+ }
+
+ return 0;
+
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_get_header
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_get_header(struct OLE_object *ole)
+{
+ int result = 0;
+
+ ole->header.sector_size = OLE_HEADER_BLOCK_SIZE;
+ result = OLE_get_block(ole, -1, ole->header_block);
+
+ if (OLE_is_file_OLE(ole) == 0)
+ {
+ return OLEER_NOT_OLE_FILE;
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_convert_header
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_convert_header(struct OLE_object *ole)
+{
+ struct OLE_header *h;
+ unsigned char *hb; /** pointer to the header block **/
+ unsigned char *fat_start;
+ unsigned int i;
+
+ h = &(ole->header);
+ hb = ole->header_block;
+
+ /** Note that the header_*(hb) calls are actually macros which are
+ ** defined in the ole.h file. These macros basically take the
+ ** hb value and add the required offset, they don't affect the
+ ** value of hb (or they certainly SHOULD NOT! )
+ **/
+
+ h->minor_version = get_2byte_value(header_minor_version(hb));
+ h->dll_version = get_2byte_value(header_dll_version(hb));
+ h->byte_order = get_2byte_value(header_byte_order(hb)); /** 0xFEFF = Little endian, 0xFFFE = big endian **/
+ h->sector_shift = get_2byte_value(header_sector_shift(hb));
+ h->sector_size = 1 << h->sector_shift;
+
+ h->mini_sector_shift = get_2byte_value(header_mini_sector_shift(hb));
+ h->mini_sector_size = 1 << h->mini_sector_shift;
+
+ h->fat_sector_count = get_4byte_value(header_fat_sector_count(hb)); /** Total number of sectors use for the SAT **/
+ h->directory_stream_start_sector = get_4byte_value(header_directory_stream_start_sector(hb)); /** Start sector-ID for the DIRECTORY STREAM **/
+ h->mini_cutoff_size = get_4byte_value(header_mini_cutoff_size(hb));
+ h->mini_fat_start = get_4byte_value(header_mini_fat_start(hb));
+ h->mini_fat_sector_count = get_4byte_value(header_mini_fat_sector_count(hb));
+ h->dif_start_sector = get_4byte_value(header_dif_start_sector(hb));
+ h->dif_sector_count = get_4byte_value(header_dif_sector_count(hb));
+
+ /** Compute the maximum possible sector number by taking our OLE filesize
+ ** and dividing it by the size of our sector size. While this isn't
+ ** absolutely accurate it is at least useful in providing us with an
+ ** upper-bound of what is an acceptable sector ID **/
+ ole->last_sector = (int)(ole->file_size >> h->sector_shift);
+
+ /** Decode our first 109 sector-ID's into the master sector allocation table (MSAT/FAT) **/
+ fat_start = header_fat_sectors(hb);
+ for (i = 0; i < h->fat_sector_count; i++)
+ {
+ if (i >= OLE_HEADER_FAT_SECTOR_COUNT_LIMIT)
+ {
+ break;
+ }
+ h->FAT[i] = get_4byte_value(fat_start + (LEN_ULONG * i));
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_header_sanity_check
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+Determines the degree of insanity in the header, returning it
+as an integer, 1 per degree of insanity.
+
+--------------------------------------------------------------------
+Changes:
+20041127-2027:PLD: Initial version
+
+\------------------------------------------------------------------*/
+static int OLE_header_sanity_check(struct OLE_object *ole)
+{
+ int insanity = 0;
+ int max_sectors;
+ struct OLE_header *h;
+
+ h = &(ole->header);
+
+ max_sectors = (int)(ole->file_size / h->sector_size);
+
+ if (h->sector_shift > 20)
+ {
+ insanity++;
+ }
+ if (h->mini_sector_shift > 10)
+ {
+ insanity++;
+ }
+ if ((int)h->fat_sector_count < 0)
+ {
+ insanity++;
+ }
+ if (h->fat_sector_count > (unsigned int)max_sectors)
+ {
+ insanity++;
+ }
+ if (h->directory_stream_start_sector > (unsigned int)max_sectors)
+ {
+ insanity++;
+ }
+
+ return insanity;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_print_header
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_print_header(struct OLE_object *ole)
+{
+ unsigned int i;
+ struct OLE_header *h;
+
+ h = &(ole->header);
+
+ printf("Minor version = %d\n"
+ "DLL version = %d\n"
+ "Byte order = %d\n\n"
+ "Sector shift = %d\n"
+ "Sector size = %d\n"
+ "Mini Sector shift = %d\n"
+ "Mini sector size = %d\n\n"
+ "FAT sector count = %d\n"
+ "First FAT sector = %d\n\n"
+ "Maximum ministream size = %d\n\n"
+ "First MiniFAT sector = %d\n"
+ "MiniFAT sector count = %d\n\n"
+ "First DIF sector = %d\n"
+ "DIF sector count = %d\n"
+ "--------------------------------\n", h->minor_version, h->dll_version, h->byte_order, h->sector_shift, h->sector_size,
+ h->mini_sector_shift, h->mini_sector_size, h->fat_sector_count, h->directory_stream_start_sector, h->mini_cutoff_size, h->mini_fat_start,
+ h->mini_fat_sector_count, h->dif_start_sector, h->dif_sector_count);
+
+ /* Print out the FAT chain */
+ for (i = 0; i < h->fat_sector_count; i++)
+ {
+ if (i >= OLE_HEADER_FAT_SECTOR_COUNT_LIMIT)
+ {
+ break; /* We can't read beyond the 109th sector location */
+ }
+ printf("FAT[%d] = %d\n", i, h->FAT[i]);
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_convert_directory
+Returns Type : int
+----Parameter List
+1. unsigned char *buf,
+2. struct OLE_directory_entry *dir ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_convert_directory(struct OLE_object *ole, unsigned char *buf, struct OLE_directory_entry *dir)
+{
+ /** Converts a raw block of 128 bytes from the file to a
+ ** struct OLE_directory_entry data structure
+ **/
+
+ /** Flush the element name **/
+ memset(dir->element_name, '\0', OLE_DIRECTORY_ELEMENT_NAME_SIZE);
+
+ /** The first 64 bytes of the structure are the element's name
+ ** in 16-bite UNICODE, meaning a maximum of 31 characters when
+ ** we account for the trailing zero byte
+ **/
+
+ /** Copy the first 64 bytes of our *buf parameter into the element name **/
+ memcpy(dir->element_name, buf, OLE_DIRECTORY_ELEMENT_NAME_SIZE);
+
+ /** how many bytes of the above 64 bytes are used for the name (NOT CHARACTERS!), **
+ ** example, for a 8 character string with a trailing zero we use **
+ ** (8+1)*2 = 18 bytes
+ **/
+ dir->element_name_byte_count = get_2byte_value(buf + 0x40);
+
+ /** Element type is of the following:
+ ** 0x00 - empty
+ ** 0x01 - user storage
+ ** 0x02 - user stream
+ ** 0x03 - lock bytes (we don't know what this is for)
+ ** 0x04 - property (again, we don't know)
+ ** 0x05 - root storage
+ **/
+ dir->element_type = (char)get_1byte_value(buf + 0x42);
+
+ /** Element colour for the red-black tree:
+ ** 0x00 - Red
+ ** 0x01 - Black
+ **/
+ dir->element_colour = (char)get_1byte_value(buf + 0x43);
+
+ /** Directory ID (DID) of the left child, -1 if no sibling **/
+ dir->left_child = get_4byte_value(buf + 0x44);
+
+ /** Directory ID (DID) of the right child, -1 if no sibling **/
+ dir->right_child = get_4byte_value(buf + 0x48);
+
+ /** Directory ID (DID) of the root node entry of the RB tree of all
+ ** storage members (if this entry is a storage), else -1.
+ **/
+ dir->root = get_4byte_value(buf + 0x4c);
+
+ memcpy(dir->class, buf + 0x50, 16);
+ dir->userflags = get_4byte_value(buf + 0x60);
+ memcpy(dir->timestamps, buf + 0x64, 16); /** Actually consists of 2 8 byte stamps **/
+
+ /** Sector ID of the first sector or short-sector **/
+ dir->start_sector = get_4byte_value(buf + 0x74);
+
+ /** Size of this stream **/
+ DOLE LOGGER_log("%s:%d:OLE_directory_entry:DEBUG: stream size = 0x%x %x %x %x", FL, *(buf + 0x78), *(buf + 0x79), *(buf + 0x7A), *(buf + 0x7B));
+
+ dir->stream_size = get_4byte_value(buf + 0x78);
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_print_directory
+Returns Type : int
+----Parameter List
+1. struct OLE *ole,
+2. struct OLE_directory_entry *dir ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_print_directory(struct OLE_object *ole, struct OLE_directory_entry *dir)
+{
+ char element[64];
+
+ OLE_dbstosbs(dir->element_name, dir->element_name_byte_count, element, sizeof(element));
+
+ printf("Element Name = %s\n"
+ "Element type = %d\n"
+ "Element colour = %d\n"
+ "Left Child = %d\n"
+ "Right Child = %d\n"
+ "Root = %d\n"
+ "User flags = %d\n"
+ "Start sector = %d\n"
+ "Stream Size = %d\n", element, dir->element_type, dir->element_colour, dir->left_child, dir->right_child, dir->root, dir->userflags,
+ dir->start_sector, dir->stream_size);
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_load_FAT
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_load_FAT(struct OLE_object *ole)
+{
+ unsigned int FAT_size;
+
+ FAT_size = ole->header.fat_sector_count << ole->header.sector_shift;
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG:Allocating for %d sectors (%d bytes)\n", FL, ole->header.fat_sector_count, FAT_size);
+
+ ole->FAT = MALLOC(FAT_size * sizeof(unsigned char));
+ ole->FAT_limit = ole->FAT + FAT_size;
+ if (ole->FAT != NULL)
+ {
+ unsigned int i;
+ unsigned char *fat_position = ole->FAT;
+ unsigned int sector_count = ole->header.fat_sector_count;
+
+ if (sector_count > OLE_HEADER_FAT_SECTOR_COUNT_LIMIT)
+ {
+ sector_count = OLE_HEADER_FAT_SECTOR_COUNT_LIMIT;
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: sector count greater than limit; set to %d", FL, sector_count);
+ }
+
+ /* Load in all our primary-FAT sectors from the OLE file */
+ for (i = 0; i < sector_count; i++)
+ {
+ int getblock_result = 0;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Loading sector %d", FL, i);
+
+ getblock_result = OLE_get_block(ole, ole->header.FAT[i], fat_position);
+ if (getblock_result != 0)
+ {
+ /* if the get block fails, return the error - but keep the FAT */
+ /* pointer alive - so that we can facilitate debugging */
+ /* otherwise the caller is always going to get a NULL pointer */
+ /* and have no idea to what extent the data was read. */
+ /**/
+ /* This behavior may be changed later - but for now (beta development) */
+ /* it'll be okay to leave it here - just make sure we know to */
+ /* free the FAT block later. */
+ return getblock_result;
+ }
+
+ fat_position += ole->header.sector_size;
+ if (fat_position > ole->FAT_limit)
+ {
+ LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: FAT boundary limit exceeded %p > %p", FL, fat_position, ole->FAT_limit);
+ return -1;
+ }
+ }
+
+ /* If our DIF count is > 0, this means we have a pretty big */
+ /* file on hand (> 7Mb) and thus we now have to do some */
+ /* fancy double-dereferenced sector request - enough to */
+ /* twist your brain if you're not alert, you have been */
+ /* warned. */
+
+ if (ole->header.dif_sector_count > 0)
+ {
+ unsigned char *fat_block;
+ unsigned char *fat_block_end;
+ unsigned int current_sector = ole->header.dif_start_sector;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Allocating %d bytes to fat_block\n", FL, ole->header.sector_size);
+
+ fat_block = MALLOC(ole->header.sector_size);
+
+ if (fat_block == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLE_load_FAT:ERROR: Unable to allocate %d bytes\n"), FL, ole->header.sector_size);
+ return -1;
+ /* exit(1); */
+ }
+
+ /* We need to know where the end of this block is - because it's */
+ /* used to show us where the NEXT FAT block is going to come from */
+ /* NOTE - this only occurs if we do have another block, else */
+ /* we'll simply have to just realise that we don't need any more */
+ /* blocks and stop with this one. */
+
+ fat_block_end = fat_block + ole->header.sector_size - LEN_ULONG;
+
+ /* We know we've got 'dif_sector_count' blocks to read, each of */
+ /* these blocks hold no more than 127 sector addresses which */
+ /* contain the actual FAT data we're after (this is the double */
+ /* dereference bit that twists your brain ) */
+
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Loading DIF sectors (count = %d)", FL, ole->header.dif_sector_count);
+
+ for (i = 0; i < ole->header.dif_sector_count; i++)
+ {
+ int import_sector;
+ unsigned char *DIF = fat_block;
+ int tick = 0;
+ int getblock_result;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Reading DIF/XBAT index-data[%d] from sector 0x%x", FL, i, current_sector);
+
+ getblock_result = OLE_get_block(ole, current_sector, fat_block);
+ if (getblock_result != OLE_OK)
+ {
+ if (fat_block)
+ {
+ FREE(fat_block);
+ }
+ return getblock_result;
+ }
+
+ if (OLE_DPEDANTIC(ole->debug))
+ {
+ OLE_print_sector(ole, fat_block, ole->header.sector_size);
+ }
+
+ /* Now, traverse this block until we hit a < 0 */
+ /* If we get what is a non-valid sector value */
+ /* we know we've reached the end of the valid */
+ /* sectors from which to read more extended FAT */
+ /* data. */
+
+ do
+ {
+ import_sector = get_4byte_value(DIF);
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: import sector = 0x%x", FL, import_sector);
+
+ if (import_sector >= 0)
+ {
+ if (fat_position + ole->header.sector_size <= ole->FAT_limit)
+ {
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Reading DIF/XBAT-data[%d] from sector 0x%x", FL, tick, import_sector);
+
+ getblock_result = OLE_get_block(ole, import_sector, fat_position);
+ if (getblock_result != OLE_OK)
+ {
+ LOGGER_log(_("%s:%d:OLE_load_FAT:ERROR: Not able to load block, import sector = 0x%x, fat position = 0x%x"), FL,
+ import_sector, fat_position);
+ if (fat_block)
+ {
+ FREE(fat_block);
+ }
+ return getblock_result;
+ }
+
+ fat_position += ole->header.sector_size;
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: FAT position = 0x%x (start = 0x%x, end = 0x%x)", FL, fat_position, fat_block,
+ ole->FAT_limit);
+
+ /*if (fat_position +ole->header.sector_size > ole->FAT_limit) */
+ if (fat_position > ole->FAT_limit)
+ {
+ DOLE LOGGER_log(_("%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"), FL, fat_position,
+ ole->FAT_limit);
+ if (fat_block)
+ {
+ FREE(fat_block);
+ }
+ return OLEER_MEMORY_OVERFLOW;
+ }
+ tick++;
+ DIF += LEN_ULONG;
+ }
+ else
+ {
+ LOGGER_log(_("%s:%d:OLE_load_FAT:ERROR: FAT memory boundary limit exceeded %p >= %p"), FL, fat_position, ole->FAT_limit);
+ if (fat_block)
+ {
+ FREE(fat_block);
+ }
+ return OLEER_MEMORY_OVERFLOW;
+ }
+ }
+ else
+ {
+ VOLE LOGGER_log(_("%s:%d:OLE_load_FAT:ERROR: sector request was negative (%d)"), FL, import_sector);
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: DIF = 0x%x", FL, DIF);
+ }
+ while ((import_sector >= 0) && (DIF < fat_block_end));
+
+ /* Get the next sector of DIF/XBAT data ... */
+ /**/
+ /* If we still have more sectors full of extended FAT */
+ /* sectors that we have to read, then we neet to */
+ /* obtain the address of the next FAT-sector filled */
+ /* sector */
+ if (i < ole->header.dif_sector_count - 1)
+ {
+ current_sector = get_4byte_value(fat_block_end);
+ DOLE LOGGER_log("%s:%d:OLE_load_FAT:DEBUG: Next DIF/XBAT index sector located at 0x%x", FL, current_sector);
+
+ if ((int)current_sector < 0)
+ {
+ break;
+ }
+ }
+ } /* For every DIF/XBAT sector we're supposed to read */
+
+ if (fat_block)
+ {
+ FREE(fat_block);
+ }
+ } /* If we have DIF/XBAT sectors to read into the FAT */
+
+ } /* If we managed to allocate memory for our FAT table */
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_follow_chain
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int FAT_sector_start ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_follow_chain(struct OLE_object *ole, int FAT_sector_start)
+{
+ int current_sector = FAT_sector_start;
+ int chain_length = 0;
+ int last_sector_of_file = ole->last_sector;
+ int break_out = 0;
+ struct bti_node *n;
+
+ BTI_init(&n);
+
+ if (FAT_sector_start < 0)
+ {
+ return 0;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_chain:DEBUG: Starting chain follow at sector %d", FL, FAT_sector_start);
+
+ do
+ {
+ int next_sector;
+ unsigned char *next_sector_location;
+
+ next_sector_location = ole->FAT + (LEN_ULONG * current_sector);
+ if (next_sector_location > (ole->FAT_limit - 4))
+ {
+ DOLE LOGGER_log("%s:%d:OLE_follow_chain:DEBUG: ERROR: Next sector was outside of the limits of this file (%ld > %ld)", FL,
+ next_sector_location, ole->FAT_limit);
+ break;
+ }
+
+ /*next_sector = get_4byte_value( ole->FAT +(LEN_ULONG *current_sector)); */
+ next_sector = get_4byte_value(next_sector_location);
+
+ if (BTI_add(&n, next_sector) != 0)
+ {
+ DOLE LOGGER_log("%s:%d:OLE_follow_chain:DEBUG: Sector collision, terminating chain traversal", FL);
+
+ chain_length = -1;
+
+ break;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_chain:DEBUG: 0x%0X:%d)->(0x%0X:%d)\n", FL, current_sector, current_sector, next_sector, next_sector);
+
+ /* 20040729-10H37 Added this to prevent endless loop which sometimes occurs at sector 0 */
+
+ if (next_sector == current_sector)
+ {
+ break;
+ }
+
+ /* fflush(stdout); */
+ current_sector = next_sector;
+ chain_length++;
+
+ /** Test to see if we should terminate this chain traversal **/
+ switch (current_sector)
+ {
+ case OLE_SECTORID_MSAT:
+ case OLE_SECTORID_SAT:
+ case OLE_SECTORID_ENDOFCHAIN:
+ case OLE_SECTORID_FREE:
+ break_out = 1;
+ break;
+ default:
+ break_out = 0;
+ };
+
+ if (current_sector < 0)
+ {
+ break_out = 1;
+ }
+
+ }
+ while ((break_out == 0) && (current_sector < last_sector_of_file));
+
+ BTI_done(&n);
+
+ return chain_length;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_follow_minichain
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int FAT_sector_start ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_follow_minichain(struct OLE_object *ole, int miniFAT_sector_start)
+{
+ /*unsigned int current_sector = miniFAT_sector_start; */
+ int current_sector = miniFAT_sector_start;
+ int chain_length = 0;
+ int break_out = 0;
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: Starting at sector %d", FL, miniFAT_sector_start);
+
+ if (miniFAT_sector_start < 0)
+ {
+ return 0;
+ }
+
+ do
+ {
+ /*unsigned int next_sector; */
+ int next_sector;
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: Requesting 4-byte value at '%d'", FL, ole->miniFAT + (LEN_ULONG * current_sector));
+
+ /* next text commented out because ole->miniFAT_limit is set to null ans vever change
+ * if (ole->miniFAT +(LEN_ULONG *current_sector) > ole->miniFAT_limit) {
+ * DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: Requested location is out of bounds\n",FL);
+ * return 0;
+ * }
+ */
+
+ next_sector = get_4byte_value(ole->miniFAT + (LEN_ULONG * current_sector));
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: Current Msector(0x%0X:%d)->next(0x%0X:%d)\n", FL, current_sector, current_sector,
+ next_sector, next_sector);
+
+ /** Check for conditions that indicate we should stop traversing this chain **/
+
+ /** 1. We cannot point to ourselves **/
+ if (current_sector == next_sector)
+ {
+ break;
+ }
+
+ chain_length++;
+ current_sector = next_sector;
+
+ /** Test for non-positive type sector ID's **/
+ switch (current_sector)
+ {
+ case OLE_SECTORID_MSAT:
+ case OLE_SECTORID_SAT:
+ case OLE_SECTORID_ENDOFCHAIN:
+ case OLE_SECTORID_FREE:
+ break_out = 1;
+ break;
+ default:
+ break_out = 0;
+ };
+
+ DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: current sector = %d", FL, current_sector);
+
+ /* Test changed Serge Steer Scilab */
+ /* } while ((break_out==0) &&(current_sector <= ole->last_sector)); */
+ }
+ while (break_out == 0);
+ DOLE LOGGER_log("%s:%d:OLE_follow_minichain:DEBUG: Done. Chainlength=%d", FL, chain_length);
+
+ return chain_length;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : char
+Returns Type : unsigned
+----Parameter List
+1. *OLE_load_minichain( struct OLE_object *ole,
+2. int FAT_sector_start ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+PLD:2003-Aug-28: Added sanity checking on the miniFAT_sector_start
+value so that we didn't try to load up a miniFAT starting on a
+negative value
+
+\------------------------------------------------------------------*/
+unsigned char *OLE_load_minichain(struct OLE_object *ole, int miniFAT_sector_start)
+{
+
+ int chain_length = 0;
+ int current_sector = miniFAT_sector_start;
+ unsigned char *buffer;
+ unsigned char *bp;
+ int break_out = 0;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_minichain:DEBUG: Loading minichain starting at %d", FL, miniFAT_sector_start);
+
+ /* Added this sanity checking 2003 Aug 28 */
+ if (miniFAT_sector_start < 0)
+ {
+ return NULL;
+ }
+
+ chain_length = OLE_follow_minichain(ole, miniFAT_sector_start);
+ DOLE LOGGER_log("%s:%d:OLE_load_minichain:DEBUG: Found %d mini-sectors to load (%d bytes)\n", FL, chain_length,
+ chain_length * ole->header.mini_sector_size);
+
+ /* 20040911-21H59 */
+ /* If our chain is 0 length, then there's nothing to return */
+ if (chain_length == 0)
+ {
+ return NULL;
+ }
+
+ bp = buffer = MALLOC(chain_length * ole->header.mini_sector_size * sizeof(unsigned char));
+ if (buffer != NULL)
+ {
+ do
+ {
+ int next_sector;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_minichain:DEBUG: Loading sector %d", FL, current_sector);
+
+ OLE_get_miniblock(ole, current_sector, bp);
+ bp += ole->header.mini_sector_size;
+
+ next_sector = get_4byte_value(ole->miniFAT + (LEN_ULONG * current_sector));
+ current_sector = next_sector;
+ /* NEXT LINES ADDED TO BE COHERENT WITH OLE_follow_minichain ABOVE Serge Steer Scilab */
+ switch (current_sector)
+ {
+ case OLE_SECTORID_MSAT:
+ case OLE_SECTORID_SAT:
+ case OLE_SECTORID_ENDOFCHAIN:
+ case OLE_SECTORID_FREE:
+ break_out = 1;
+ break;
+ default:
+ break_out = 0;
+ };
+ /* Test changed Serge Steer Scilab */
+ /* } while ((current_sector != OLE_SECTORID_ENDOFCHAIN)&&(current_sector >= 0)&&(current_sector <= ole->last_sector)); */
+
+ }
+ while (break_out == 0);
+
+ }
+ else
+ {
+ LOGGER_log(_("%s:%d:OLE_get_miniblock:ERROR: Failed to allocate enough memory for miniChain"), FL);
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_load_minichain:DEBUG: Done. buffer=%p", FL, buffer);
+
+ return buffer;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : char
+Returns Type : unsigned
+----Parameter List
+1. *OLE_load_chain( struct OLE_object *ole,
+2. int FAT_sector_start ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+Make the loading aware of negative-value sectors so that it can
+make more intelligent exit strategies.
+
+\------------------------------------------------------------------*/
+unsigned char *OLE_load_chain(struct OLE_object *ole, int FAT_sector_start)
+{
+
+ int chain_length = 0;
+ int current_sector = FAT_sector_start;
+ unsigned char *buffer = NULL;
+ unsigned char *bp = NULL;
+
+ ole->last_chain_size = 0;
+
+ if (FAT_sector_start < 0)
+ {
+ return NULL;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_load_chain:DEBUG: Loading chain, starting at sector %d", FL, FAT_sector_start);
+
+ chain_length = OLE_follow_chain(ole, FAT_sector_start);
+ DOLE LOGGER_log("%s:%d:OLE_load_chain:DEBUG: %d sectors need to be loaded", FL, chain_length);
+
+ if (chain_length > 0)
+ {
+ size_t offset;
+
+ offset = ole->last_chain_size = chain_length << ole->header.sector_shift;
+ bp = buffer = MALLOC((offset) * sizeof(unsigned char));
+ if (buffer == NULL)
+ {
+ LOGGER_log("%s:%d:OLE_load_chain:ERROR: Cannot allocate %d bytes for OLE chain", FL, offset);
+ return NULL;
+ }
+
+ if (buffer != NULL)
+ {
+ int tick = 0;
+ unsigned char *bp_limit;
+
+ bp_limit = bp + offset;
+
+ do
+ {
+ int next_sector;
+
+ DOLE LOGGER_log("%s:%d:OLE_load_chain:DEBUG: Loading sector[%d] %d", FL, tick, current_sector);
+
+ ole->error = OLE_get_block(ole, current_sector, bp);
+ if (ole->error != OLE_OK)
+ {
+ /*FREE5 if (bp != NULL) FREE(bp); */
+ return NULL;
+ }
+
+ bp += ole->header.sector_size;
+ if (bp > bp_limit)
+ {
+ if (buffer != NULL)
+ {
+ FREE(buffer);
+ bp = buffer = NULL;
+ }
+ VOLE LOGGER_log(_("%s:%d:OLE_load_chain:ERROR: Load-chain went over memory boundary"), FL);
+
+ return NULL;
+ };
+
+ next_sector = get_4byte_value(ole->FAT + (LEN_ULONG * current_sector));
+ current_sector = next_sector;
+ tick++;
+ }
+ while ((current_sector >= 0) && (current_sector <= ole->last_sector));
+ }
+ }
+ DOLE LOGGER_log("%s:%d:OLE_load_chain:DEBUG: Done loading chain", FL);
+
+ return buffer;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_open_file
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. char *fullpath ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+20041127-2033:PLD: Added ole->file_size setting so that we
+can use this in the sanity checking to see if the
+requested sectors are outside of the possible valid
+filesize range.
+
+\------------------------------------------------------------------*/
+int OLE_open_file(struct OLE_object *ole, char *fullpath)
+{
+#ifdef _MSC_VER
+ struct _stat st;
+#else
+ struct stat st;
+#endif
+ int stat_result;
+ FILE *f;
+
+#ifdef _MSC_VER
+ stat_result = wcstat(fullpath, &st);
+#else
+ stat_result = stat(fullpath, &st);
+#endif
+ if (stat_result != 0)
+ {
+ DOLE LOGGER_log(_("%s:%d:OLE_open_file:ERROR: Cannot locate file '%s' for opening (%s)"), FL, fullpath, strerror(errno));
+
+ return OLEER_BAD_INPUT_FILE;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_open_file:DEBUG: File size of %s = %ld", FL, fullpath, st.st_size);
+
+ if ((stat_result == 0) && (st.st_size < 512))
+ {
+ return OLEER_NOT_OLE_FILE;
+ }
+
+ ole->file_size = st.st_size;
+
+ wcfopen(f, fullpath, "rb");
+
+ if (f == NULL)
+ {
+ ole->f = NULL;
+ if (ole->quiet == 0)
+ {
+ LOGGER_log(_("%s:%d:OLE_open_file:ERROR:Cannot open %s for reading (%s)\n"), FL, fullpath, strerror(errno));
+ }
+ return -1;
+ }
+ else
+ {
+ ole->f = f;
+ ole->file_size = st.st_size;
+ ole->last_sector = -1;
+ }
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_open_directory
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. char *directory ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_open_directory(struct OLE_object *ole, char *directory)
+{
+ int result = 0;
+
+#ifndef _MSC_VER
+ result = mkdir(directory, S_IRWXU);
+#else
+ {
+ wchar_t *wdirectory = to_wide_string(directory);
+
+ result = createdirectoryW(wdirectory);
+ FREE(wdirectory);
+ }
+ /* If the function succeeds, the return value is nonzero.
+ * If the function fails, the return value is zero. */
+ if (result)
+ {
+ result = 0;
+ }
+#endif
+ if ((result != 0) && (errno != EEXIST))
+ {
+ LOGGER_log(_("%s:%d:OLE_open_directory:ERROR: %s"), FL, strerror(errno));
+ }
+ else
+ {
+ result = OLE_OK;
+ }
+
+ return result;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_set_filename_report_fn
+Returns Type : int
+----Parameter List
+1. int (*ptr_to_fn)(char *) ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+This is merely a passthrough function to the OLEUW one, we do
+this in order to avoid having to force the calling parent from
+having to #include the OLEUW headers as well
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_set_filename_report_fn(struct OLE_object *ole, int (*ptr_to_fn) (char *))
+{
+ ole->filename_report_fn = ptr_to_fn;
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_store_stream
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. char *stream_name,
+3. char *directory,
+4. unsigned char *stream ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_store_stream(struct OLE_object *ole, char *stream_name, char *directory, char *stream, size_t stream_size)
+{
+ char *full_path = NULL;
+
+ full_path = PLD_dprintf("%s/%s", directory, stream_name);
+ if (full_path == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLE_store_stream:ERROR: Cannot compose full filename string from '%s' and '%s'"), FL, directory, stream_name);
+ return -1;
+ }
+ else
+ {
+ FILE *f;
+
+ wcfopen(f, full_path, "wb");
+
+ if (f == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLE_store_stream:ERROR: Cannot open %s for writing (%s)"), FL, full_path, strerror(errno));
+ if (full_path)
+ {
+ FREE(full_path);
+ }
+ return -1;
+ }
+ else
+ {
+ size_t written_bytes;
+
+ written_bytes = fwrite(stream, 1, stream_size, f);
+ if (written_bytes != stream_size)
+ {
+ LOGGER_log(_("%s:%d:OLE_store_stream:WARNING: Only wrote %d of %d bytes to file %s"), FL, written_bytes, stream_size, full_path);
+ }
+ fclose(f);
+
+ if ((OLE_VNORMAL(ole->verbose)) && (ole->filename_report_fn != NULL))
+ {
+ ole->filename_report_fn(stream_name);
+ }
+ } /* if file is valid */
+ } /* if full_path is valid */
+
+ if (full_path)
+ {
+ FREE(full_path);
+ }
+
+ return OLE_OK;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLE_decode_file_done
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLE_object *ole ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+ Comments:
+
+ --------------------------------------------------------------------
+ Changes:
+
+ \------------------------------------------------------------------*/
+int OLE_decode_file_done(struct OLE_object *ole)
+{
+ if (ole->f)
+ {
+ fclose(ole->f);
+ }
+ /** Why weren't these active? (they were commented out ) **/
+ if (ole->FAT)
+ {
+ FREE(ole->FAT);
+ }
+ if (ole->miniFAT)
+ {
+ FREE(ole->miniFAT);
+ }
+ if (ole->ministream)
+ {
+ FREE(ole->ministream);
+ }
+ if (ole->properties)
+ {
+ FREE(ole->properties);
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_terminate_and_return
+Returns Type : int
+----Parameter List
+1. struct OLE_object *ole,
+2. int result ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_terminate_and_return(struct OLE_object *ole, int result)
+{
+ OLE_decode_file_done(ole);
+ return result;
+}
+
+#ifdef RIPOLE_WALK_TREE
+int OLE_walk_tree(struct OLE_object *ole, char *fname, char *decode_path, int depth)
+{
+
+ /** Sanity check **/
+
+ if (depth > 100)
+ {
+ return 0;
+ }
+ if (ole->total_file_count > 10000)
+ {
+ return 0;
+ }
+ if (element_type < 0)
+ {
+ return 0;
+ }
+
+ switch (element_type)
+ {
+
+ case STGTY_ROOT:
+ /** ROOT DIRECTORY ENTRY **/
+ /** ROOT DIRECTORY ENTRY **/
+ /** ROOT DIRECTORY ENTRY **/
+ DOLE LOGGER_log("%s:%d:OLE_walk_tree:DEBUG: Loading ministream/SmallBlockArray", FL);
+ ole->ministream = OLE_load_chain(ole, adir->start_sector);
+ if (ole->ministream == NULL)
+ {
+ return OLEER_MINISTREAM_READ_FAIL;
+ }
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: ministream done", FL);
+ }
+
+}
+
+else if (adir->element_type == STGTY_STORAGE)
+{
+ /** STORAGE ELEMENT **/
+ /** STORAGE ELEMENT **/
+ /** STORAGE ELEMENT **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Item is directory, start child is at index %d\n", FL, i);
+
+ ole->ministream = OLE_load_chain(ole, adir->start_sector);
+ if (ole->ministream == NULL)
+ {
+ return OLEER_MINISTREAM_READ_FAIL;
+ }
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: DIRECTORY ministream done", FL);
+
+}
+#endif
+
+int OLE_decode_stream(struct OLE_object *ole, struct OLE_directory_entry *adir, char *decode_path)
+{
+ char *stream_data;
+ struct OLEUNWRAP_object oleuw;
+ int decode_result = OLEUW_STREAM_NOT_DECODED;
+ char element_name[64];
+ int result = 0;
+
+ memset(element_name, '\0', 64);
+ OLE_dbstosbs(adir->element_name, adir->element_name_byte_count, element_name, 64);
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Decoding stream '%s'", FL, element_name);
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Initializing stream unwrapper", FL);
+
+ OLEUNWRAP_init(&oleuw);
+ OLEUNWRAP_set_debug(&oleuw, ole->debug);
+ OLEUNWRAP_set_verbose(&oleuw, ole->verbose);
+ OLEUNWRAP_set_filename_report_fn(&oleuw, ole->filename_report_fn);
+ OLEUNWRAP_set_save_unknown_streams(&oleuw, ole->save_unknown_streams);
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Unwrap engine set.", FL);
+
+ if (adir->stream_size >= ole->header.mini_cutoff_size)
+ {
+ /** Standard size sector stored stream **/
+ /** Standard size sector stored stream **/
+ /** Standard size sector stored stream **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Loading normal sized chain starting at sector %d", FL, adir->start_sector);
+
+ stream_data = (char *)OLE_load_chain(ole, adir->start_sector);
+ if (stream_data == NULL)
+ {
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Terminating from stream data being NULL ", FL);
+
+ /*OLE_decode_file_done(ole); */
+ return OLEER_MINISTREAM_STREAM_READ_FAIL;
+ }
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Normal decode START. element name ='%s' stream size = '%ld'", FL, element_name,
+ adir->stream_size);
+ decode_result = OLEUNWRAP_decodestream(&oleuw, element_name, stream_data, adir->stream_size, decode_path);
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Normal decode done.", FL);
+ }
+ else
+ {
+
+ /** Minichain/Minisector stored stream **/
+ /** Minichain/Minisector stored stream **/
+ /** Minichain/Minisector stored stream **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Minichain loader, starting at sector %d", FL, adir->start_sector);
+
+ stream_data = (char *)OLE_load_minichain(ole, adir->start_sector);
+ if (stream_data == NULL)
+ {
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Ministream was non-existant, terminating", FL);
+
+ /*OLE_decode_file_done(ole); */
+ return OLEER_NORMALSTREAM_STREAM_READ_FAIL;
+ }
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Mini decode START.", FL);
+
+ decode_result = OLEUNWRAP_decodestream(&oleuw, element_name, stream_data, adir->stream_size, decode_path);
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Mini decode done.", FL);
+ }
+
+ /* Added for Scilab */
+ if ((stream_data != NULL) && (decode_result == OLEUW_STREAM_NOT_DECODED) &&
+ (ole->save_unknown_streams == 2) && ((strcmp(element_name, "Workbook") == 0) || (strcmp(element_name, "Book") == 0)))
+ {
+ strcpy(element_name, "Workbook");
+ OLE_store_stream(ole, element_name, decode_path, stream_data, adir->stream_size);
+
+ } /* If we needed to save an unknown stream */
+
+ else /* end Scilab addition */ if ((stream_data != NULL) && (decode_result == OLEUW_STREAM_NOT_DECODED) && (ole->save_unknown_streams))
+ {
+ char *lfname;
+
+ lfname = PLD_dprintf("ole-stream.%d", adir->start_sector);
+ if (lfname != NULL)
+ {
+ DOLE LOGGER_log("%s:%d:OLE_decode_stream:DEBUG: Saving stream to %s", FL, lfname);
+
+ OLE_store_stream(ole, lfname, decode_path, stream_data, adir->stream_size);
+ FREE(lfname);
+ }
+ } /* If we needed to save an unknown stream */
+
+ /* Clean up an stream_data which we may have */
+ /* read in from the chain-loader. */
+ if (stream_data)
+ {
+ FREE(stream_data);
+ }
+
+ return result;
+}
+
+/*-----------------------------------------------------------------\
+Function Name : OLE_decode_file
+Returns Type : int
+----Parameter List
+1. char *fname,
+2. char *decode_path ,
+------------------
+Exit Codes :
+Side Effects :
+--------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int OLE_decode_file(struct OLE_object *ole, char *fname, char *decode_path)
+{
+ unsigned char *current_property, *property_limit;
+ int result = 0;
+ int i;
+
+ /* Reject any bad paramters. */
+ if (ole == NULL)
+ {
+ return OLEER_DECODE_NULL_OBJECT;
+ }
+ if (fname == NULL)
+ {
+ return OLEER_DECODE_NULL_FILENAME;
+ }
+ if (decode_path == NULL)
+ {
+ return OLEER_DECODE_NULL_PATH;
+ }
+
+ /* We need to gain access to the OLE2 data file, without */
+ /* this pretty much everything is pointless. */
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: opening %s", FL, fname);
+
+ result = OLE_open_file(ole, fname);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ /* Try create the output directory which we're using */
+ /* to write the decoded files out to. */
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: opening output directory %s", FL, decode_path);
+
+ result = OLE_open_directory(ole, decode_path);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ /* In order to successfully decode an OLE2 stream, we have to read */
+ /* and understand the first 512 bytes of the file, this is the */
+ /* OLE2 header. */
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Getting main header", FL);
+
+ result = OLE_get_header(ole);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Converting main header", FL);
+
+ result = OLE_convert_header(ole);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ result = OLE_header_sanity_check(ole);
+ if (result > 0)
+ {
+ return OLEER_INSANE_OLE_FILE;
+ }
+
+ DOLE OLE_print_header(ole);
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Loading FAT", FL);
+
+ result = OLE_load_FAT(ole);
+ if (result != 0)
+ {
+ return result;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Loading miniFAT chain", FL);
+
+ ole->miniFAT = OLE_load_chain(ole, ole->header.mini_fat_start);
+ /* commented out by Serge Steer for Scilab */
+ /* if (ole->miniFAT == NULL) return OLEER_MINIFAT_READ_FAIL; */
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Loading Directory stream chain", FL);
+
+ ole->properties = OLE_load_chain(ole, ole->header.directory_stream_start_sector);
+ if (ole->properties == NULL)
+ {
+ return OLEER_PROPERTIES_READ_FAIL;
+ }
+
+ i = 0;
+ current_property = ole->properties;
+ property_limit = current_property + ole->last_chain_size;
+ /* while(1) */
+ while (current_property < property_limit)
+ {
+ struct OLE_directory_entry a_dir_object, *adir;
+ int property_value = 0;
+
+ adir = &a_dir_object;
+
+ OLE_dir_init(adir);
+
+ property_value = get_1byte_value(current_property);
+ if (property_value < 1)
+ {
+ break;
+ }
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG:--------- DIRECTORY INDEX: %d", FL, i);
+
+ OLE_convert_directory(ole, current_property, adir);
+
+ DOLE
+ {
+ LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Printing directory details...", FL);
+ OLE_print_directory(ole, adir);
+ LOGGER_log("%s:%d:OLE_decode_file:DEBUG: End of directory details", FL);
+ }
+
+ if (adir->element_colour > 1)
+ {
+ break;
+ }
+
+ if ((adir->element_type == STGTY_INVALID) || (adir->element_type > STGTY_ROOT))
+ {
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: breaking out due to element type %d", FL, adir->element_type);
+
+ break;
+
+ }
+ else if (adir->element_type == STGTY_ROOT)
+ {
+ /** ROOT DIRECTORY ENTRY **/
+ /** ROOT DIRECTORY ENTRY **/
+ /** ROOT DIRECTORY ENTRY **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Loading ministream/SmallBlockArray", FL);
+
+ ole->ministream = OLE_load_chain(ole, adir->start_sector);
+ /* commented out by Serge Steer for Scilab */
+ /*if (ole->ministream == NULL) return OLEER_MINISTREAM_READ_FAIL; */
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: ministream done", FL);
+
+ }
+ else if (adir->element_type == STGTY_STORAGE)
+ {
+ /** STORAGE ELEMENT **/
+ /** STORAGE ELEMENT **/
+ /** STORAGE ELEMENT **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Item is directory, start child is at index %d\n", FL, i);
+
+ ole->ministream = OLE_load_chain(ole, adir->start_sector);
+ /* commented out by Serge Steer for Scilab */
+ /*if (ole->ministream == NULL) return OLEER_MINISTREAM_READ_FAIL; */
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: DIRECTORY ministream done", FL);
+
+ }
+ else if (adir->element_type == STGTY_STREAM)
+ {
+ /** STREAM ELEMENT **/
+ /** STREAM ELEMENT **/
+ /** STREAM ELEMENT **/
+ /* due to ole.c bugs we restrict here steams to decode to Workbooks (Excel) */
+ char element_name[64];
+
+ memset(element_name, '\0', 64);
+ OLE_dbstosbs(adir->element_name, adir->element_name_byte_count, element_name, 64);
+
+ if ((strcmp(element_name, "Workbook") == 0) || (strcmp(element_name, "Book") == 0))
+ {
+ OLE_decode_stream(ole, adir, decode_path);
+ }
+ /*end of replacment code */
+ /* Original code */
+ /* OLE_decode_stream( ole, adir, decode_path ); */
+ }
+ else
+ {
+ /** If the element isn't of the above types then it's possibly
+ ** an empty element or just one used for the MSAT/SAT
+ ** either way we just step over it and carry on **/
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Element type %d does not need to be handled", FL, adir->element_type);
+ }
+
+ /* Jump to the next property record, which */
+ /* is always 128 bytes ahead. */
+ current_property += 128;
+ i++;
+
+ } /* While there are still more directory entries to read in. */
+
+ DOLE LOGGER_log("%s:%d:OLE_decode_file:DEBUG: Finished", FL);
+
+ /*
+ * if (ole->f) fclose(ole->f);
+ * fclose(ole->f);
+ * if (ole->FAT) FREE(ole->FAT);
+ * if (ole->miniFAT) FREE(ole->miniFAT);
+ * if (ole->ministream) FREE(ole->ministream);
+ * if (ole->properties) FREE(ole->properties);
+ */
+
+ return OLE_OK;
+}
diff --git a/modules/spreadsheet/src/c/ripole/ole.h b/modules/spreadsheet/src/c/ripole/ole.h
new file mode 100755
index 000000000..c52e85a9b
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/ole.h
@@ -0,0 +1,173 @@
+
+#ifndef LIBOLE
+#define LIBOLE
+
+#define LIBOLE_VERSION "200512112226"
+
+#define OLE_OK 0
+#define OLEER_NO_INPUT_FILE 100
+#define OLEER_BAD_INPUT_FILE 101
+#define OLEER_NOT_OLE_FILE 102
+#define OLEER_INSANE_OLE_FILE 103
+
+#define OLEER_DECODE_NULL_OBJECT 10
+#define OLEER_DECODE_NULL_FILENAME 11
+#define OLEER_DECODE_NULL_PATH 12
+
+#define OLEER_LOADFAT_BAD_BOUNDARY 20
+
+#define OLEER_MINIFAT_READ_FAIL 30
+#define OLEER_PROPERTIES_READ_FAIL 31
+#define OLEER_MINISTREAM_READ_FAIL 32
+#define OLEER_MINISTREAM_STREAM_READ_FAIL 33
+#define OLEER_NORMALSTREAM_STREAM_READ_FAIL 34
+
+#define OLEER_GET_BLOCK_SEEK 41
+#define OLEER_GET_BLOCK_READ 42
+
+#define OLEER_MEMORY_OVERFLOW 50
+
+#define OLE_VERBOSE_NORMAL 1
+#define OLE_VERBOSE_FATREAD 2
+#define OLE_VERBOSE_DIRREAD 4
+#define OLE_VERBOSE_STREAMREAD 8
+#define OLE_VERBOSE_STREAMDECODE 16
+
+#define OLE_VNORMAL(x) ((x) && OLE_VERBOSE_NORMAL == OLE_VERBOSE_NORMAL )
+
+#define OLE_DEBUG_NORMAL 1
+#define OLE_DEBUG_PEDANTIC 2
+
+#define OLE_DNORMAL(x) ((x) && OLE_DEBUG_NORMAL == OLE_DEBUG_NORMAL)
+#define OLE_DPEDANTIC(x) ((x) && OLE_DEBUG_PEDANTIC == OLE_DEBUG_PEDANTIC)
+
+
+#define OLE_HEADER_FAT_SECTOR_COUNT_LIMIT 109
+struct OLE_header
+{
+ unsigned int minor_version;
+ unsigned int dll_version;
+ unsigned int byte_order;
+ unsigned int sector_shift;
+ unsigned int sector_size;
+ unsigned int mini_sector_shift;
+ unsigned int mini_sector_size;
+ unsigned int fat_sector_count;
+ unsigned int directory_stream_start_sector;
+ unsigned int mini_cutoff_size;
+ unsigned int mini_fat_start;
+ unsigned int mini_fat_sector_count;
+ unsigned int dif_start_sector;
+ unsigned int dif_sector_count;
+ unsigned int FAT[OLE_HEADER_FAT_SECTOR_COUNT_LIMIT];
+};
+
+#define OLE_DIRECTORY_ELEMENT_NAME_SIZE 64
+#define OLE_DIRECTORY_CLASS_SIZE 16
+#define OLE_DIRECTORY_TIMESTAMPS_SIZE 16
+struct OLE_directory_entry
+{
+ char element_name[OLE_DIRECTORY_ELEMENT_NAME_SIZE];
+ int element_name_byte_count;
+
+ char element_type;
+ char element_colour;
+
+ unsigned int left_child;
+ unsigned int right_child;
+ unsigned int root;
+
+ unsigned char class[OLE_DIRECTORY_CLASS_SIZE];
+ unsigned int userflags;
+ unsigned char timestamps[OLE_DIRECTORY_TIMESTAMPS_SIZE];
+ unsigned int start_sector;
+ unsigned int stream_size;
+};
+
+
+
+#define OLE_HEADER_BLOCK_SIZE 512
+struct OLE_object
+{
+
+ int error;
+ size_t file_size;
+ int last_sector;
+ size_t last_chain_size;
+
+ FILE *f;
+ unsigned char *FAT;
+ unsigned char *FAT_limit; /** Added to prevent segment violations **/
+ unsigned char *miniFAT;
+ unsigned char *miniFAT_limit; /** Added to prevent segment violations **/
+ unsigned char header_block[OLE_HEADER_BLOCK_SIZE];
+ unsigned char *ministream;
+ unsigned char *properties;
+
+ struct OLE_header header;
+
+ /* End user configurable parameters:*/
+ int debug;
+ int verbose;
+ int quiet;
+ int save_unknown_streams;
+
+ int save_streams;
+ int save_mini_streams;
+ int save_normal_streams;
+
+ int decode_streams;
+ int decode_mini_streams;
+ int decode_normal_streams;
+
+ int (*filename_report_fn)(char *);
+
+};
+
+
+
+/* Prototypes*/
+
+int OLE_version( void );
+
+int OLE_init( struct OLE_object *ole );
+int OLE_set_verbose( struct OLE_object *ole, int level );
+int OLE_set_debug( struct OLE_object *ole, int level );
+int OLE_set_quiet( struct OLE_object *ole, int level );
+int OLE_set_save_unknown_streams( struct OLE_object *ole, int level );
+
+int OLE_get_block( struct OLE_object *ole, int block_index, unsigned char *block_buffer );
+int OLE_get_miniblock( struct OLE_object *ole, int block_index, unsigned char *block_buffer );
+int OLE_dbstosbs( char *raw_string, size_t char_count, char *clean_string, int clean_string_len );
+int OLE_print_string( char *string, size_t char_count);
+/**
+ ** Bruno : Removed, is now static in ole.c !!
+ ** int OLE_print_sector( struct OLE_object *ole, char *sector, unsigned int bytes);
+ **/
+int OLE_get_header( struct OLE_object *ole );
+int OLE_convert_header( struct OLE_object *ole );
+int OLE_print_header( struct OLE_object *ole );
+int OLE_convert_directory(struct OLE_object *ole, unsigned char *buf, struct OLE_directory_entry *dir );
+int OLE_print_directory( struct OLE_object *ole, struct OLE_directory_entry *dir );
+int OLE_load_FAT( struct OLE_object *ole );
+int OLE_follow_chain( struct OLE_object *ole, int FAT_sector_start );
+int OLE_follow_minichain( struct OLE_object *ole, int miniFAT_sector_start );
+unsigned char *OLE_load_minichain( struct OLE_object *ole, int miniFAT_sector_start );
+unsigned char *OLE_load_chain( struct OLE_object *ole, int FAT_sector_start );
+int OLE_open_file( struct OLE_object *ole, char *fullpath );
+int OLE_decode_file( struct OLE_object *ole, char *fname, char *decode_path );
+int OLE_decode_file_done( struct OLE_object *ole );
+
+int OLE_dir_init(struct OLE_directory_entry *dir );
+int OLE_sectorpos( struct OLE_object *ole, int SID );
+int OLE_is_file_OLE( struct OLE_object *ole );
+int OLE_open_directory( struct OLE_object *ole, char *directory );
+int OLE_store_stream( struct OLE_object *ole, char *stream_name, char *directory, char *stream, size_t stream_size );
+int OLE_terminate_and_return( struct OLE_object *ole, int result );
+int OLE_decode_stream( struct OLE_object *ole, struct OLE_directory_entry *adir, char *decode_path );
+
+
+/* Our callbacks.*/
+int OLE_set_filename_report_fn( struct OLE_object *ole, int (*ptr_to_fn)(char *) );
+
+#endif
diff --git a/modules/spreadsheet/src/c/ripole/olestream-unwrap.c b/modules/spreadsheet/src/c/ripole/olestream-unwrap.c
new file mode 100755
index 000000000..a34f3d728
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/olestream-unwrap.c
@@ -0,0 +1,400 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+
+#include "logger.h"
+#include "pldstr.h"
+#include "bytedecoders.h"
+#include "olestream-unwrap.h"
+#include "localization.h"
+#include "MALLOC.h"
+#include "charEncoding.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+
+
+#define DUW if (oleuw->debug)
+
+struct OLE10_header
+{
+ unsigned char data[6];
+ char *attach_name;
+ unsigned char data2[8];
+ char *fname_1;
+ char *fname_2;
+ size_t attach_size;
+ size_t attach_size_1;
+ size_t attach_start_offset;
+};
+
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_init
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLEUNWRAP_object *oleuw ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_init( struct OLEUNWRAP_object *oleuw )
+{
+ oleuw->debug = 0;
+ oleuw->verbose = 0;
+ oleuw->filename_report_fn = NULL;
+
+ return OLEUW_OK;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_set_debug
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLEUNWRAP_object *oleuw,
+ 2. int level ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_set_debug( struct OLEUNWRAP_object *oleuw, int level )
+{
+ oleuw->debug = level;
+ return OLEUW_OK;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_set_verbose
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLEUNWRAP_object *oleuw,
+ 2. int level ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_set_verbose( struct OLEUNWRAP_object *oleuw, int level )
+{
+ oleuw->verbose = level;
+ return OLEUW_OK;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_set_save_unknown_streams
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLEUNWRAP_object *oleuw,
+ 2. int level ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_set_save_unknown_streams( struct OLEUNWRAP_object *oleuw, int level )
+{
+ oleuw->save_unknown_streams = level;
+ return OLEUW_OK;
+}
+
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_save_stream
+ Returns Type : int
+ ----Parameter List
+ 1. char *fname,
+ 2. char *stream,
+ 3. size_t bytes ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_save_stream( struct OLEUNWRAP_object *oleuw, char *fname, char *decode_path, char *stream, size_t bytes )
+{
+ char *full_name;
+ FILE *f;
+ int result = 0;
+
+ DUW LOGGER_log("%s:%d:OLEUNWRAP_save_stream:DEBUG: fname=%s, decodepath=%s, size=%ld"
+ , FL
+ , fname
+ , decode_path
+ , bytes
+ );
+
+ full_name = PLD_dprintf("%s/%s", decode_path, fname );
+ if (full_name == NULL)
+ {
+ LOGGER_log(_("%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to create filename string from '%s' and '%s'"), FL, fname, decode_path);
+ return -1;
+ }
+
+ wcfopen(f, full_name, "wb");
+ if (f != NULL)
+ {
+ size_t write_count;
+
+ write_count = fwrite( stream, 1, bytes, f );
+ if (write_count != bytes)
+ {
+ LOGGER_log(_("%s:%d:OLEUNWRAP_save_stream:WARNING: Only wrote %d of %d bytes to file %s\n"), FL, write_count, bytes, full_name );
+ }
+
+ fclose(f);
+
+
+ }
+ else
+ {
+ LOGGER_log(_("%s:%d:OLEUNWRAP_save_stream:ERROR: Unable to open %s for writing (%s)\n"), FL, full_name, strerror(errno));
+ result = -1;
+ }
+
+ if (full_name)
+ {
+ FREE(full_name);
+ }
+
+ DUW LOGGER_log("%s:%d:OLEUNWRAP_save_stream:DEBUG: Done saving '%s'", FL, fname);
+
+ return result;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_sanitize_filename
+ Returns Type : int
+ ----Parameter List
+ 1. char *fname ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_sanitize_filename( char *fname )
+{
+ while (*fname)
+ {
+ if ( !isalnum((int)*fname) && (*fname != '.') )
+ {
+ *fname = '_';
+ }
+ if ( (*fname < ' ') || (*fname > '~') )
+ {
+ *fname = '_';
+ }
+ fname++;
+ }
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_decode_attachment
+ Returns Type : int
+ ----Parameter List
+ 1. char *stream ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_decode_attachment( struct OLEUNWRAP_object *oleuw, char *stream, size_t stream_size, char *decode_path )
+{
+ struct OLE10_header oh;
+ char *sp = stream;
+ char *data_start_point = stream;
+ int result = OLEUW_OK;
+
+ /* Get the data size*/
+ oh.attach_size_1 = (size_t)get_4byte_value( (unsigned char *) sp );
+ sp += 4;
+
+ DUW LOGGER_log("%s:%d:OLEUNWRAP_decode_attachment:DEBUG: attachsize = %d, stream length = %d\n", FL, oh.attach_size_1, stream_size );
+
+ oh.attach_start_offset = (stream_size - oh.attach_size_1);
+ data_start_point = stream + oh.attach_start_offset;
+
+ /*if (oh.attach_start_offset == 4)*/
+ if (oh.attach_start_offset < 4)
+ {
+ /* If we only had the stream byte-length in our header*/
+ /* then we know we don't have a complex header.*/
+ oh.attach_name = PLD_dprintf("unknown-%ld", oh.attach_size_1);
+ oh.attach_size = oh.attach_size_1;
+ }
+ else
+ {
+
+ DUW LOGGER_log("%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Decoding file information header", FL);
+ /* Unknown memory segment*/
+ memcpy( oh.data, sp, 2 );
+ sp += 2;
+
+ /* Full attachment string*/
+ oh.attach_name = strdup( sp );
+ sp = sp + strlen(oh.attach_name) + 1;
+
+ /* Attachment full path*/
+ oh.fname_1 = strdup( sp );
+ sp += strlen(oh.fname_1) + 1;
+
+ /* Unknown memory segment*/
+ memcpy( oh.data2, sp, 8 );
+ sp = sp + 8;
+
+ /* Attachment full path*/
+ oh.fname_2 = strdup( sp );
+ sp += strlen(oh.fname_2) + 1;
+
+ oh.attach_size = (size_t)get_4byte_value( (unsigned char*) sp );
+ sp += 4;
+
+ if (oh.attach_size > stream_size)
+ {
+ oh.attach_size = stream_size;
+ }
+
+ data_start_point = sp;
+ }
+
+ DUW LOGGER_log(_("%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Attachment %s:%s:%s size = %d\n"), FL, oh.attach_name, oh.fname_1, oh.fname_2, oh.attach_size );
+
+
+ /** 20050119:2053:PLD - Added to sanitize 8-bit filenames **/
+ /** Sanitize the output filename **/
+ OLEUNWRAP_sanitize_filename(oh.attach_name);
+ OLEUNWRAP_sanitize_filename(oh.fname_1);
+ OLEUNWRAP_sanitize_filename(oh.fname_2);
+
+ result = OLEUNWRAP_save_stream( oleuw, oh.attach_name, decode_path, data_start_point, oh.attach_size );
+ if (result == OLEUW_OK)
+ {
+ if (oleuw->debug > 0)
+ {
+ LOGGER_log(_("%s:%d:OLEUNWRAP_decode_attachment:DEBUG: Calling reporter for the filename"), FL);
+ }
+ if ((oleuw->verbose > 0) && (oleuw->filename_report_fn != NULL))
+ {
+ oleuw->filename_report_fn(oh.attach_name);
+ }
+ /* Do call back to reporting function*/
+ }
+
+ /* Clean up our previously allocated data*/
+ if (oh.fname_1 != NULL)
+ {
+ FREE(oh.fname_1);
+ }
+ if (oh.attach_name != NULL)
+ {
+ FREE(oh.attach_name);
+ }
+ if (oh.fname_2 != NULL)
+ {
+ FREE(oh.fname_2);
+ }
+
+ return OLEUW_OK;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_decodestream
+ Returns Type : int
+ ----Parameter List
+ 1. char *element_string,
+ 2. char *stream ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_decodestream( struct OLEUNWRAP_object *oleuw, char *element_string, char *stream, size_t stream_size, char *decode_path )
+{
+ int result = OLEUW_OK;
+
+ if (strstr(element_string, OLEUW_ELEMENT_10NATIVE_STRING) != NULL)
+ {
+ OLEUNWRAP_decode_attachment( oleuw, stream, stream_size, decode_path );
+
+ }
+ else
+ {
+ if (oleuw->debug)
+ {
+ LOGGER_log(_("Unable to decode stream with element string '%s'\n"), element_string);
+ }
+ result = OLEUW_STREAM_NOT_DECODED;
+ }
+
+ return result;
+}
+
+
+/*-----------------------------------------------------------------\
+ Function Name : OLEUNWRAP_set_filename_report_fn
+ Returns Type : int
+ ----Parameter List
+ 1. struct OLEUNWRAP_object *oleuw,
+ 2. int (*ptr_to_fn)(char *) ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+int OLEUNWRAP_set_filename_report_fn( struct OLEUNWRAP_object *oleuw, int (*ptr_to_fn)(char *) )
+{
+
+ oleuw->filename_report_fn = ptr_to_fn;
+
+ return 0;
+}
+
diff --git a/modules/spreadsheet/src/c/ripole/olestream-unwrap.h b/modules/spreadsheet/src/c/ripole/olestream-unwrap.h
new file mode 100755
index 000000000..fc8492cfb
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/olestream-unwrap.h
@@ -0,0 +1,28 @@
+
+#define OLEUW_ELEMENT_10NATIVE 10
+#define OLEUW_ELEMENT_10NATIVE_STRING "Ole10Native"
+
+#define OLEUW_OK 0
+#define OLEUW_STREAM_NOT_DECODED 100
+
+struct OLEUNWRAP_object
+{
+ int (*filename_report_fn)(char *);
+ int debug;
+ int verbose;
+ int save_unknown_streams;
+};
+
+
+int OLEUNWRAP_init( struct OLEUNWRAP_object *oleuw );
+int OLEUNWRAP_set_debug( struct OLEUNWRAP_object *oleuw, int level );
+int OLEUNWRAP_set_verbose( struct OLEUNWRAP_object *oleuw, int level );
+int OLEUNWRAP_set_save_unknown_streams( struct OLEUNWRAP_object *oleuw, int level );
+
+int OLEUNWRAP_save_stream( struct OLEUNWRAP_object *oleuw, char *fname, char *decode_path, char *stream, size_t bytes );
+int OLEUNWRAP_decode_attachment( struct OLEUNWRAP_object *oleuw, char *stream, size_t stream_size, char *decode_path );
+int OLEUNWRAP_decodestream( struct OLEUNWRAP_object *oleuw, char *element_string, char *stream, size_t stream_size, char *decode_path );
+
+int OLEUNWRAP_set_filename_report_fn( struct OLEUNWRAP_object *oleuw, int (*ptr_to_fn)(char *) );
+
+int OLEUNWRAP_sanitize_filename(char *fname);
diff --git a/modules/spreadsheet/src/c/ripole/pldstr.c b/modules/spreadsheet/src/c/ripole/pldstr.c
new file mode 100755
index 000000000..659ef56bf
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/pldstr.c
@@ -0,0 +1,908 @@
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "logger.h"
+#include "pldstr.h"
+#include "MALLOC.h"
+#include "localization.h"
+
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#define vsnprintf _vsnprintf
+#endif
+
+/*-----------------------------------------------------------------\
+ Function Name : *PLD_strstr
+ Returns Type : char
+ ----Parameter List
+ 1. char *haystack,
+ 2. char *needle,
+ 3. int insensitive,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+char *PLD_strstr(char *haystack, char *needle, int insensitive)
+{
+ char *hs;
+ char *ne;
+ char *result;
+
+ /* LOGGER_log("%s:%d:\nHS=%s\nNE=%s\nIS=%d\n",FL, haystack, needle, insensitive );*/
+
+ if (insensitive > 0)
+ {
+ hs = strdup(haystack);
+ PLD_strlower((unsigned char*) hs);
+ ne = strdup(needle);
+ PLD_strlower((unsigned char*) ne);
+ }
+ else
+ {
+ hs = haystack;
+ ne = needle;
+ }
+
+ result = strstr(hs, ne);
+ /* if (result) LOGGER_log("%s:%d:HIT: %s",FL, result);*/
+ /* else LOGGER_log("%s:%d:MISS (looking for %s|%s)",FL, needle,ne);*/
+
+ if ((result != NULL) && (insensitive > 0))
+ {
+ result = result - hs + haystack;
+ FREE(hs);
+ FREE(ne);
+
+ /* LOGGER_log("%s:%d:HIT - %s",FL, result );*/
+ }
+
+ return result;
+}
+
+/*------------------------------------------------------------------------
+Procedure: PLD_strncpy ID:1
+Purpose: Copy characters from 'src' to 'dst', writing not more than 'len'
+characters to the destination, including the terminating \0.
+Thus, for any effective copying, len must be > 1.
+Input: char *dst: Destination string
+char *src: Source string
+size_t len: length of string
+Output: Returns a pointer to the destination string.
+Errors:
+------------------------------------------------------------------------*/
+char *PLD_strncpy (char *dst, const char *src, size_t len)
+{
+
+ /* Thanks go to 'defrost' of #c for providing the replacement*/
+ /* code which you now see here. It covers the errors better*/
+ /* than my own previous code.*/
+
+ /* If we have no buffer space, then it's futile attempting*/
+ /* to copy anything, just return NULL*/
+ if (len == 0)
+ {
+ return NULL;
+ }
+
+ /* Providing our destination pointer isn't NULL, we can*/
+ /* commence copying data across*/
+
+ if (dst)
+ {
+ char *dp = dst;
+
+ /* If our source string exists, start moving it to the*/
+ /* destination string character at a time.*/
+ if (src)
+ {
+ char *sp = (char *)src;
+ while ((--len) && (*sp))
+ {
+ *dp = *sp;
+ dp++;
+ sp++;
+ }
+ }
+
+ *dp = '\0';
+ }
+
+ return dst;
+}
+
+
+
+/*------------------------------------------------------------------------
+Procedure: PLD_strncat ID:1
+Purpose: Buffer size limited string concat function for two strings.
+Input: char *dst: Destination string
+char *src: Source string
+size_t len: Destination string buffer size - total string size cannot exceed this
+Output:
+Errors: If the length of both strings in total is greater than the available buffer space
+in *dst, we copy the maximum possible amount of chars from *src such that
+buffer does not overflow. A suffixed '\0' will always be appended.
+------------------------------------------------------------------------*/
+char *PLD_strncat( char *dst, const char *src, size_t len )
+{
+ char *dp = dst;
+ const char *sp = src;
+ size_t cc;
+
+ if (len == 0)
+ {
+ return dst;
+ }
+
+ len--;
+
+ /* Locate the end of the current string.*/
+ cc = 0;
+ while ((*dp) && (cc < len))
+ {
+ dp++;
+ cc++;
+ }
+
+ /* If we have no more buffer space, then return the destination*/
+
+ if (cc >= len)
+ {
+ return dst;
+ }
+
+ /* While we have more source, and there's more char space left in the buffer*/
+
+ while ((*sp) && (cc < len))
+ {
+ cc++;
+ *dp = *sp;
+ dp++;
+ sp++;
+ }
+
+ /* Terminate dst, as a gaurantee of string ending.*/
+
+ *dp = '\0';
+
+ return dst;
+}
+
+
+/*------------------------------------------------------------------------
+Procedure: PLD_strncate ID:1
+Purpose: Catencates a source string to the destination string starting from a given
+endpoint. This allows for faster catencation of strings by avoiding the
+computation required to locate the endpoint of the destination string.
+Input: char *dst: Destination string
+char *src: Source string
+size_t len: Destination buffer size
+char *endpoint: Endpoint of destination string, location from where new
+string will be appended
+Output:
+Errors:
+------------------------------------------------------------------------*/
+char *PLD_strncate( char *dst, const char *src, size_t len, char *endpoint )
+{
+ char *dp = dst;
+ const char *sp = src;
+ size_t cc = 0;
+
+ if (len == 0)
+ {
+ return dst;
+ }
+
+ len--;
+
+ /* If endpoint does not relate correctly, then force manual detection*/
+ /* of the endpoint.*/
+
+ if ((!endpoint) || (endpoint == dst) || ((endpoint - dst + 1) > (int)len))
+ {
+ /* Locate the end of the current string.*/
+ cc = 0;
+ while ((*dp != '\0') && (cc < len))
+ {
+ dp++;
+ cc++;
+ }
+ }
+ else
+ {
+ cc = endpoint - dst + 1;
+ dp = endpoint;
+ }
+
+ /* If we have no more buffer space, then return the destination*/
+
+ if (cc >= len)
+ {
+ return dst;
+ }
+
+ /* While we have more source, and there's more char space left in the buffer*/
+
+ while ((*sp) && (cc < len))
+ {
+ cc++;
+ *dp = *sp;
+ dp++;
+ sp++;
+ }
+
+ /* Terminate dst, as a gaurantee of string ending.*/
+
+ *dp = '\0';
+
+ return dst;
+}
+
+
+
+
+
+/*------------------------------------------------------------------------
+Procedure: XAM_strncasecmp ID:1
+Purpose: Portable version of strncasecmp(), this may be removed in later
+versions as the strncase* type functions are more widely
+implemented
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int PLD_strncasecmp( char *s1, char *s2, int n )
+{
+ char *ds1 = s1, *ds2 = s2;
+ char c1, c2;
+ int result = 0;
+
+ while (n > 0)
+ {
+ c1 = (char)tolower(*ds1);
+ c2 = (char)tolower(*ds2);
+
+ if (c1 == c2)
+ {
+ n--;
+ ds1++;
+ ds2++;
+ }
+ else
+ {
+ result = c2 - c1;
+ n = 0;
+ }
+
+ }
+
+ return result;
+
+}
+
+
+
+
+
+/*------------------------------------------------------------------------
+Procedure: XAM_strtok ID:1
+Purpose: A thread safe version of strtok()
+Input:
+Output:
+Errors:
+------------------------------------------------------------------------*/
+char *PLD_strtok( struct PLD_strtok *st, char *line, char *delimeters )
+{
+ char *stop;
+ char *dc;
+ char *result = NULL;
+
+ if ( line )
+ {
+ st->start = line;
+ }
+
+ /*Strip off any leading delimeters*/
+
+ dc = delimeters;
+ while ((st->start) && (*dc != '\0'))
+ {
+ if (*dc == *(st->start))
+ {
+ st->start++;
+ dc = delimeters;
+ }
+ else
+ {
+ dc++;
+ }
+ }
+
+ /* Where we are left, is the start of our token.*/
+
+ result = st->start;
+
+ if ((st->start) && (st->start != '\0'))
+ {
+ stop = strpbrk( st->start, delimeters ); /* locate our next delimeter */
+
+ /* If we found a delimeter, then that is good. We must now break the string here*/
+ /* and don't forget to store the character which we stopped on. Very useful bit*/
+ /* of information for programs which process expressions.*/
+
+ if (stop)
+ {
+
+ /* Store our delimeter.*/
+
+ st->delimeter = *stop;
+
+ /* Terminate our token.*/
+
+ *stop = '\0';
+
+
+ /* Because we're emulating strtok() behaviour here, we have to*/
+ /* absorb all the concurrent delimeters, that is, unless we*/
+ /* reach the end of the string, we cannot return a string with*/
+ /* no chars.*/
+
+ stop++;
+ dc = delimeters;
+ while (*dc != '\0')
+ {
+ if (*dc == *stop)
+ {
+ stop++;
+ dc = delimeters;
+ }
+ else
+ {
+ dc++;
+ }
+ } /* While*/
+
+ if (*stop == '\0')
+ {
+ st->start = NULL;
+ }
+ else
+ {
+ st->start = stop;
+ }
+
+ }
+ else
+ {
+ st->start = NULL;
+ st->delimeter = '\0';
+ }
+ }
+ else
+ {
+ st->start = NULL;
+ result = NULL;
+ }
+
+
+ return result;
+}
+
+
+
+/*------------------------------------------------------------------------
+Procedure: PLD_strlower ID:1
+Purpose: Converts a string to lowercase
+Input: char *convertme : string to convert
+Output:
+Errors:
+------------------------------------------------------------------------*/
+int PLD_strlower( unsigned char *convertme )
+{
+
+ /* Updates:*/
+ /* 09-11-2002 - changed from 'char *' to 'unsigned char *' to deal with*/
+ /* non-ASCII characters ( ie, french ). Pointed out by Emmanuel Collignon*/
+
+ unsigned char *c = convertme;
+
+ while ( *c != '\0')
+ {
+ *c = (unsigned char)tolower((int) * c);
+ c++;
+ }
+
+ return 0;
+}
+
+
+/*-----------------------------------------------------------------\
+ Function Name : *PLD_strreplace
+ Returns Type : char
+ ----Parameter List
+ 1. char *source, Original buffer, \0 terminated
+ 2. char *searchfor, String sequence to search for
+ 3. char *replacewith, String sequence to replace 'searchfor' with
+ 4. int replacenumber , How many times to replace 'searchfor', 0 == unlimited
+ ------------------
+ Exit Codes : Returns a pointer to the new buffer space. The original
+ buffer will still remain intact - ensure that the calling
+ program FREE()'s the original buffer if it's no longer
+ needed
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+Start out with static text matching - upgrade to regex later.
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+char *PLD_strreplace_general( struct PLD_strreplace *replace_details )
+{
+ char *new_buffer = NULL;
+ char *source_end;
+ char *segment_start, *segment_end, *segment_p;
+ char *new_p;
+ char *preexist_location = NULL;
+ char *postexist_location = NULL;
+ int replace_count = 0;
+ int size_required;
+ int size_difference;
+ int source_length;
+ int searchfor_length;
+ int replacewith_length;
+ int segment_ok;
+
+ if (replace_details->source == NULL)
+ {
+ return NULL;
+ }
+
+ source_length = (int)strlen( replace_details->source );
+ source_end = replace_details->source + source_length;
+ searchfor_length = (int)strlen(replace_details->searchfor);
+ replacewith_length = (int)strlen(replace_details->replacewith);
+ size_difference = replacewith_length - searchfor_length;
+ size_required = source_length;
+ replace_count = replace_details->replacenumber;
+
+ if ((replace_details->preexist != NULL) && (strlen(replace_details->preexist) < 1))
+ {
+ replace_details->preexist = NULL;
+ }
+ if ((replace_details->postexist != NULL) && (strlen(replace_details->postexist) < 1))
+ {
+ replace_details->postexist = NULL;
+ }
+
+ /* If we have a 'pre-exist' request, then we need to check this out first*/
+ /* because if the pre-exist string cannot be found, then there's very*/
+ /* little point us continuing on in our search ( because without the*/
+ /* preexist string existing, we are thus not qualified to replace anything )*/
+ if (replace_details->preexist != NULL)
+ {
+ preexist_location = PLD_strstr(replace_details->source, replace_details->preexist, replace_details->insensitive);
+ if (preexist_location == NULL)
+ {
+ return replace_details->source;
+ }
+ }
+
+ /* Determine if initial POSTexist tests will pass, if we don't pick up*/
+ /* anything here, then there's no point in continuing either*/
+ if (replace_details->postexist != NULL)
+ {
+ char *p = replace_details->source;
+ postexist_location = NULL;
+ do
+ {
+ p = PLD_strstr(p, replace_details->postexist, replace_details->insensitive);
+ if (p != NULL)
+ {
+ postexist_location = p;
+ p = p + strlen(replace_details->postexist);
+ }
+ }
+ while (p != NULL);
+
+ if (postexist_location == NULL)
+ {
+ return replace_details->source;
+ }
+ }
+
+
+ /* Step 1 - determine the MAXIMUM number of times we might have to replace this string ( or the limit*/
+ /* set by replacenumber*/
+ /**/
+ /* Note - we only need this number if the string we're going to be inserting into the */
+ /* source is larger than the one we're replacing - this is so that we can ensure that*/
+ /* we have sufficient memory available in the buffer.*/
+ if (size_difference > 0)
+ {
+ if (replace_count == 0)
+ {
+ char *p, *q;
+
+ p = replace_details->source;
+ q = PLD_strstr(p, replace_details->searchfor, replace_details->insensitive);
+ while (q != NULL)
+ {
+ replace_count++;
+ /*size_required += size_difference;*/
+ p = q + searchfor_length;
+ q = PLD_strstr(p, replace_details->searchfor, replace_details->insensitive);
+ }
+
+ }
+ size_required = source_length + (size_difference * replace_count) + 1;
+ }
+ else
+ {
+ size_required = source_length + 1;
+ }
+
+
+ /* Allocate the memory required to hold the new string [at least], check to see that*/
+ /* all went well, if not, then return an error*/
+ new_buffer = MALLOC( sizeof(char) * size_required);
+ if (new_buffer == NULL)
+ {
+ LOGGER_log(_("%s:%d:PLD_strreplace:ERROR: Cannot allocate %d bytes of memory to perform replacement operation"), FL, size_required);
+ return replace_details->source;
+ }
+
+ /* Our segment must always start at the beginning of the source, */
+ /* on the other hand, the segment_end can be anything from the*/
+ /* next byte to NULL ( which is specially treated to mean to */
+ /* the end of the source )*/
+ segment_start = replace_details->source;
+
+
+ /* Locate the first segment */
+ segment_ok = 0;
+ segment_end = PLD_strstr(replace_details->source, replace_details->searchfor, replace_details->insensitive);
+
+ /* Determine if the first segment is valid in the presence of the */
+ /* pre-exist and post-exist requirements*/
+ while ((segment_end != NULL) && (segment_ok == 0)\
+ && ((replace_details->preexist != NULL) || (replace_details->postexist != NULL)))
+ {
+ int pre_ok = 0;
+ int post_ok = 0;
+
+ /* The PREexist test assumes a couple of factors - please ensure these are*/
+ /* relevant if you change any code prior to this point.*/
+ /* */
+ /* 1. preexist_location has already been computed and is not NULL*/
+ /**/
+ /* 2. By relative position, the first preexist_location will be a valid location*/
+ /* on which to validate for ALL replacements beyond that point, thus, we*/
+ /* never actually have to recompute preexist_location again.*/
+ /**/
+ /* 3. Conversely, the last computed postexist_location is valid for all */
+ /* matches before it*/
+ /**/
+ if (preexist_location == NULL)
+ {
+ pre_ok = 1;
+ }
+ else if (preexist_location < segment_end)
+ {
+ pre_ok = 1;
+ }
+
+ if (postexist_location == NULL)
+ {
+ post_ok = 1;
+ }
+ else if (postexist_location > segment_end)
+ {
+ post_ok = 1;
+ }
+
+ if ((pre_ok == 0) || (post_ok == 0))
+ {
+ segment_end = PLD_strstr(segment_end + searchfor_length, replace_details->searchfor, replace_details->insensitive);
+ }
+ else
+ {
+ segment_ok = 1;
+ }
+ }
+
+ segment_p = segment_start;
+ new_p = new_buffer;
+ while (segment_start != NULL)
+ {
+ int replacewith_count;
+ char *replacewith_p;
+
+ if (segment_end == NULL)
+ {
+ segment_end = source_end;
+ }
+
+ replace_count--;
+
+ /* Perform the segment copy*/
+ segment_p = segment_start;
+ while ((segment_p < segment_end) && (size_required > 0))
+ {
+ *new_p = *segment_p;
+ new_p++;
+ segment_p++;
+ size_required--;
+ }
+
+ /* Perform the string replacement*/
+ if (segment_end < source_end)
+ {
+ replacewith_count = replacewith_length;
+ replacewith_p = replace_details->replacewith;
+ while ((replacewith_count--) && (size_required > 0))
+ {
+ *new_p = *replacewith_p;
+ new_p++;
+ replacewith_p++;
+ size_required--;
+ }
+ }
+
+ if (size_required < 1 )
+ {
+ LOGGER_log(_("%s:%d:PLD_strreplace_general: Allocated memory ran out while replacing '%s' with '%s'"), FL, replace_details->searchfor, replace_details->replacewith);
+ *new_p = '\0';
+ break;
+ }
+
+ /* Find the next segment*/
+ segment_start = segment_end + searchfor_length;
+
+ /* If we've reached the end of the number of replacements we're supposed*/
+ /* to do, then we prepare the termination of the while loop by setting*/
+ /* our segment end to the end of the source.*/
+ /**/
+ /* NOTE: Remember that the replace_count is pre-decremented at the start*/
+ /* of the while loop, so, if the caller requested '0' replacements*/
+ /* this will now be -1, thus, it won't get terminated from this == 0*/
+ /* match. Just thought you'd like to be reminded of that incase you*/
+ /* were wondering "Huh? this would terminate an unlimited replacement"*/
+ if (replace_count == 0)
+ {
+ segment_end = NULL;
+ }
+ else
+ {
+ /* If our new segment to copy starts after the*/
+ /* end of the source, then we actually have */
+ /* nothing else to copy, thus, we prepare the*/
+ /* segment_start varible to cause the while loop */
+ /* to terminate.*/
+ /**/
+ /* Otherwise, we try and locate the next segment*/
+ /* ending point, and set the starting point to*/
+ /* be on the 'other side' of the 'searchfor' string*/
+ /* which we found in the last search.*/
+ /**/
+ if (segment_start > source_end)
+ {
+ segment_start = NULL;
+ }
+ else
+ {
+
+ /* Try find the next segment*/
+ segment_ok = 0;
+ segment_end = PLD_strstr(segment_end + searchfor_length, replace_details->searchfor, replace_details->insensitive);
+
+ /* If we have a pre/post-exist requirement, then enter into this*/
+ /* series of tests. NOTE - at least one of the pre or post tests*/
+ /* must fire to give an meaningful result - else we'll end up with */
+ /* a loop which simply goes to the end of the searchspace buffer*/
+ while ((segment_end != NULL) && (segment_ok == 0)\
+ && ((replace_details->preexist != NULL) || (replace_details->postexist != NULL)))
+ {
+ int pre_ok = 0;
+ int post_ok = 0;
+
+ /* The PREexist test assumes a couple of factors - please ensure these are*/
+ /* relevant if you change any code prior to this point.*/
+ /* */
+ /* 1. preexist_location has already been computed and is not NULL*/
+ /**/
+ /* 2. By relative position, the first preexist_location will be a valid location*/
+ /* on which to validate for ALL replacements beyond that point, thus, we*/
+ /* never actually have to recompute preexist_location again.*/
+ /**/
+ /* 3. Conversely, the last computed postexist_location is valid for all */
+ /* matches before it*/
+ /**/
+ if (preexist_location == NULL)
+ {
+ pre_ok = 1;
+ }
+ else if (preexist_location < segment_end)
+ {
+ pre_ok = 1;
+ }
+
+ if (postexist_location == NULL)
+ {
+ post_ok = 1;
+ }
+ else if (postexist_location > segment_end)
+ {
+ post_ok = 1;
+ }
+
+ if ((pre_ok == 0) || (post_ok == 0))
+ {
+ segment_end = PLD_strstr(segment_end + searchfor_length, replace_details->searchfor, replace_details->insensitive);
+ }
+ else
+ {
+ segment_ok = 1;
+ }
+ }
+
+ } /* If-else segment_start > source_end*/
+
+ }
+
+ }
+
+ *new_p = '\0';
+
+ if (replace_details->source != NULL)
+ {
+ FREE (replace_details->source);
+ }
+ replace_details->source = new_buffer;
+ return new_buffer;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : *PLD_strreplace
+ Returns Type : char
+ ----Parameter List
+ 1. char **source,
+ 2. char *searchfor,
+ 3. char *replacewith,
+ 4. int replacenumber ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+char *PLD_strreplace( char **source, char *searchfor, char *replacewith, int replacenumber )
+{
+ struct PLD_strreplace replace_details;
+ char *tmp_source;
+
+ replace_details.source = *source;
+ replace_details.searchfor = searchfor;
+ replace_details.replacewith = replacewith;
+ replace_details.replacenumber = replacenumber;
+ replace_details.preexist = NULL;
+ replace_details.postexist = NULL;
+ replace_details.insensitive = 0;
+
+ tmp_source = PLD_strreplace_general( &replace_details );
+
+ if (tmp_source != *source)
+ {
+ *source = tmp_source;
+ }
+
+ return *source;
+}
+
+
+/*-----------------------------------------------------------------\
+ Function Name : *PLD_dprintf
+ Returns Type : char
+ ----Parameter List
+ 1. const char *format,
+ 2. ...,
+ ------------------
+ Exit Codes :
+ Side Effects :
+--------------------------------------------------------------------
+ Comments:
+ This is a dynamic string allocation function, not as fast as some
+ other methods, but it works across the board with both glibc 2.0
+ and 2.1 series.
+
+--------------------------------------------------------------------
+ Changes:
+
+\------------------------------------------------------------------*/
+char *PLD_dprintf(const char *format, ...)
+{
+ int n, size = 1024; /* Assume we don't need more than 1K to start with*/
+ char *p;
+ va_list ap;
+
+ /* Attempt to allocate and then check */
+ p = MALLOC(size * sizeof(char));
+ if (p == NULL)
+ {
+ return NULL;
+ }
+
+ while (1)
+ {
+ /* Attempt to print out string out into the allocated space*/
+ va_start(ap, format);
+
+ n = vsnprintf (p, size, format, ap);
+ va_end(ap);
+
+ /* If things went well, then return the new string*/
+ if ((n > -1) && (n < size))
+ {
+ return p;
+ }
+
+ /* If things didn't go well, then we have to allocate more space*/
+ /* based on which glibc we're using ( fortunately, the return codes*/
+ /* tell us which glibc is being used! *phew**/
+ /**/
+ /* If n > -1, then we're being told precisely how much space we need*/
+ /* else (older glibc) we have to just guess again ...*/
+
+ if (n > -1)
+ {
+ size = n + 1; /* Allocate precisely what is needed*/
+ }
+ else
+ {
+ size *= 2; /* Double the amount allocated, note, we could just increase by 1K, but if we have a long string, we'd end up using a lot of realloc's*/
+ }
+
+ /* We could just realloc 'blind', but that'd be wrong and potentially cause a DoS, so*/
+ /* instead, we'll be good and first attempt to realloc to a temp variable then, if all*/
+ /* is well, we go ahead and update*/
+ if (1)
+ {
+ char *tmp_p;
+
+ tmp_p = REALLOC(p, size);
+ if (tmp_p == NULL)
+ {
+ if (p != NULL)
+ {
+ FREE(p);
+ }
+ return NULL;
+ }
+ else
+ {
+ p = tmp_p;
+ }
+ }
+ }
+
+}
+
+
+/*-----------------END.*/
diff --git a/modules/spreadsheet/src/c/ripole/pldstr.h b/modules/spreadsheet/src/c/ripole/pldstr.h
new file mode 100755
index 000000000..6763e2483
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/pldstr.h
@@ -0,0 +1,40 @@
+#ifndef __PLDSTR__
+#define __PLDSTR__
+
+#ifndef FL
+#define FL __FILE__,__LINE__
+#endif
+
+struct PLD_strtok
+{
+ char *start;
+ char delimeter;
+};
+
+struct PLD_strreplace
+{
+ char *source;
+ char *searchfor;
+ char *replacewith;
+
+ char *preexist;
+ char *postexist;
+
+ int replacenumber;
+
+ int insensitive;
+};
+
+char *PLD_strstr(char *haystack, char *needle, int insensitive);
+char *PLD_strncpy( char *dst, const char *src, size_t len );
+char *PLD_strncat( char *dst, const char *src, size_t len );
+char *PLD_strncate( char *dst, const char *src, size_t len, char *endpoint );
+char *PLD_strtok( struct PLD_strtok *st, char *line, char *delimeters );
+int PLD_strncasecmp( char *s1, char *s2, int n );
+int PLD_strlower( unsigned char *convertme );
+
+char *PLD_strreplace_general( struct PLD_strreplace *replace_details );
+char *PLD_strreplace( char **source, char *searchfor, char *replacewith, int replacenumber );
+char *PLD_dprintf(const char *fmt, ...);
+
+#endif
diff --git a/modules/spreadsheet/src/c/ripole/ripole.c b/modules/spreadsheet/src/c/ripole/ripole.c
new file mode 100755
index 000000000..867b69d67
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/ripole.c
@@ -0,0 +1,201 @@
+
+/* Microsoft OLE2 stream parser.*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "logger.h"
+#include "pldstr.h"
+#include "ole.h"
+#include "ripole.h"
+#include "localization.h"
+
+#undef WITHMAIN
+
+#include "MALLOC.h"
+
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+
+#define ROLE_VERSION "0.2.0"
+
+static char defaultdir[] = ".";
+/*static char version[] = "0.2.0 - 12-December-2005 (C) PLDaniels http:/*www.pldaniels.com/ripole";
+static char help[] = "ripOLE -i <OLE2 file> [ -d <directory> ] [--save-unknown-streams] [--version|-V] [--verbose|-v] [--debug] [--help|-h]";
+*/
+/*-----------------------------------------------------------------\
+ Function Name : set_defaults
+ Returns Type : int
+ ----Parameter List
+ 1. struct ripOLE_object *role ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int ROLE_set_defaults(struct ripOLE_object *role)
+{
+ role->outputdir = defaultdir;
+ role->debug = 0;
+ role->verbose = 0;
+ role->save_unknown_streams = 0;
+ role->inputfile = NULL;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : ripOLE_report_filename_decoded
+ Returns Type : int
+ ----Parameter List
+ 1. char *filename,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int ROLE_report_filename_decoded(char *filename)
+{
+ LOGGER_log(_("Decoding filename=%s"), filename);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : ROLE_init
+ Returns Type : int
+ ----Parameter List
+ 1. struct ripOLE_object *role,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int ROLE_init(struct ripOLE_object *role)
+{
+ role->debug = 0;
+ role->verbose = 0;
+ role->save_unknown_streams = 0;
+
+ role->inputfile = NULL;
+ role->outputdir = NULL;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : ROLE_done
+ Returns Type : int
+ ----Parameter List
+ 1. struct ripOLE_object *role,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int ROLE_done(struct ripOLE_object *role)
+{
+ if (role->inputfile != NULL)
+ {
+ FREE(role->inputfile);
+ }
+ if (role->outputdir != NULL)
+ {
+ FREE(role->outputdir);
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------\
+ Function Name : ROLE_validate
+ Returns Type : int
+ ----Parameter List
+ 1. struct ripOLE_object *role ,
+ ------------------
+ Exit Codes :
+ Side Effects :
+ --------------------------------------------------------------------
+Comments:
+
+--------------------------------------------------------------------
+Changes:
+
+\------------------------------------------------------------------*/
+int ROLE_validate(struct ripOLE_object *role)
+{
+ int result = 0;
+
+ if (role->inputfile == NULL)
+ {
+ fprintf(stderr, _("ripOLE requires an input file to decode.\n"));
+ return -1;
+ }
+
+ return result;
+}
+
+int ripole(char *inputfile, char *outputdir, int debug, int verbose)
+{
+ /*struct OLE_object *ole = NULL; */
+ struct OLE_object ole;
+ int result = 0;
+
+ /*ole = MALLOC(sizeof(struct OLE_object));
+ * if (ole == NULL)
+ * {
+ * LOGGER_log(_("ripOLE: Cannot allocate memory for OLE object"));
+ * return 1;
+ * } */
+
+ LOGGER_set_output_mode(_LOGGER_STDOUT);
+
+ OLE_init(&ole);
+ if (debug == 1)
+ {
+ OLE_set_debug(&ole, OLE_DEBUG_NORMAL);
+ }
+ if (verbose == 1)
+ {
+ OLE_set_verbose(&ole, OLE_VERBOSE_NORMAL);
+ }
+ /*ole->save_unknown_streams==2 added for Scilab to extract onlyspreadsheet streams
+ * see OLE_decode_stream in ole.c file */
+ OLE_set_save_unknown_streams(&ole, 2); /* get only spreadsheet streams */
+
+ OLE_set_filename_report_fn(&ole, ROLE_report_filename_decoded);
+
+ result = OLE_decode_file(&ole, inputfile, outputdir);
+ OLE_decode_file_done(&ole);
+
+ if ((result != 0) && (verbose == 1))
+ {
+ LOGGER_log(_("ripOLE: decoding of %s resulted in error %d.\n"), inputfile, result);
+ }
+
+ /*if (ole != NULL) FREE(ole); */
+ return result;
+}
diff --git a/modules/spreadsheet/src/c/ripole/ripole.h b/modules/spreadsheet/src/c/ripole/ripole.h
new file mode 100755
index 000000000..402a6fda5
--- /dev/null
+++ b/modules/spreadsheet/src/c/ripole/ripole.h
@@ -0,0 +1,37 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __RIPOLE_H__
+#define __RIPOLE_H__
+
+struct ripOLE_object
+{
+ int debug;
+ int verbose;
+ int save_unknown_streams;
+
+ char *inputfile;
+ char *outputdir;
+
+};
+
+int ROLE_set_defaults( struct ripOLE_object *role );
+int ROLE_parse_parameters( struct ripOLE_object *role, int argc, char **argv );
+int ROLE_set_parameters( struct ripOLE_object *role, struct OLE_object *ole );
+int ROLE_report_filename_decoded(char *filename);
+int ROLE_init(struct ripOLE_object *role);
+int ROLE_done(struct ripOLE_object *role);
+int ROLE_validate(struct ripOLE_object *role );
+int ripole(char *inputfile, char *outputdir, int debug, int verbose);
+
+#endif /* #define __RIPOLE_H__ */
diff --git a/modules/spreadsheet/src/c/splitLine.c b/modules/spreadsheet/src/c/splitLine.c
new file mode 100755
index 000000000..dc7313ec6
--- /dev/null
+++ b/modules/spreadsheet/src/c/splitLine.c
@@ -0,0 +1,241 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include <stdio.h>
+#include "splitLine.h"
+#include "strsubst.h"
+#include "MALLOC.h"
+#include "freeArrayOfString.h"
+
+#define EMPTYFIELD "__EMPTY_FIELD_CSV__"
+#define DOUBLE_QUOTE '"'
+
+// Add the token (string) to the array of tokens,
+// and applies post processing (escape double quotes,...)
+static int addToken(char **tokens, int *tokenIdx, const char* tokenValue, int tokenLen)
+{
+ char *token = (char *) MALLOC((sizeof(char) * tokenLen) + 1);
+
+ if (token)
+ {
+ char *token2;
+ const char *c, *c_end;
+ char *c2;
+
+ memcpy(token, tokenValue, tokenLen);
+ token[tokenLen] = 0;
+
+ if (strcmp(token, EMPTYFIELD) == 0)
+ {
+ strcpy(token, "");
+ }
+
+ // Escape double quotes, and remove simple quotes
+ token2 = (char *) MALLOC((sizeof(char) * tokenLen) + 1);
+ c = token;
+ c_end = c + tokenLen;
+ c2 = token2;
+ while (c < c_end)
+ {
+ if (*c == DOUBLE_QUOTE)
+ {
+ c++;
+ if (*c == DOUBLE_QUOTE)
+ {
+ *c2 = DOUBLE_QUOTE;
+ c++;
+ c2++;
+ }
+ }
+ else
+ {
+ *c2 = *c;
+ c++;
+ c2++;
+ }
+ }
+ *c2 = 0;
+
+ // Add token
+ tokens[*tokenIdx] = token2;
+ (*tokenIdx)++;
+
+ FREE(token);
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* ==================================================================== */
+char **splitLineCSV(const char *str, const char *sep, int *toks)
+{
+ char **retstr = NULL;
+ const char *idx = NULL;
+ const char *end = NULL;
+ const char *sep_end = NULL;
+ const char *sep_idx = NULL;
+ int len = 0;
+ int curr_str = 0;
+ int inDoubleQuote = 0;
+
+ /* Usually, it should be ,, or ;; */
+ char tokenstring_to_search[64] = "";
+ /* Previous item will be replaced by ;__EMPTY_FIELD_CSV__; */
+ char tokenreplacement_string[64] = "";
+ char *substitutedstring = NULL;
+
+ sprintf(tokenstring_to_search, "%s%s", sep, sep);
+ sprintf(tokenreplacement_string, "%s%s%s", sep, EMPTYFIELD, sep);
+ substitutedstring = strsub(str, tokenstring_to_search, tokenreplacement_string);
+ /* in a string like foo;bar;;;, replace all the ;;, not only the first and last one */
+ while (strstr(substitutedstring, tokenstring_to_search) != NULL)
+ {
+ substitutedstring = strsub(substitutedstring, tokenstring_to_search, tokenreplacement_string);
+ }
+
+ if (strncmp(substitutedstring, sep, strlen(sep)) == 0)
+ {
+ char *tmp = NULL;
+ size_t l = strlen(substitutedstring) + strlen(EMPTYFIELD) + strlen(sep) + 1;
+ tmp = (char*)MALLOC(sizeof(char) * l);
+ sprintf(tmp, "%s%s%s", EMPTYFIELD, sep, &substitutedstring[1]);
+ FREE(substitutedstring);
+ substitutedstring = tmp;
+ }
+
+ if (substitutedstring[strlen(substitutedstring) - 1] == sep[0])
+ {
+ char *tmp = NULL;
+ size_t l = strlen(substitutedstring) + strlen(EMPTYFIELD) + 1;
+ tmp = (char*)MALLOC(sizeof(char) * l);
+ sprintf(tmp, "%s%s", substitutedstring, EMPTYFIELD);
+ FREE(substitutedstring);
+ substitutedstring = tmp;
+ }
+
+ sep_end = sep + strlen(sep);
+ end = substitutedstring + strlen(substitutedstring);
+
+ idx = substitutedstring;
+
+ if (strstr(substitutedstring, sep) == NULL)
+ {
+ *toks = 0;
+ FREE(substitutedstring);
+ return NULL;
+ }
+
+ retstr = (char **) MALLOC((sizeof(char *) * (int)strlen(substitutedstring)));
+ if (retstr == NULL)
+ {
+ *toks = 0;
+ FREE(substitutedstring);
+ return NULL;
+ }
+
+ while (idx < end)
+ {
+ // If we are in a double quoted field, we do not plit on separators
+ if (!inDoubleQuote)
+ {
+ sep_idx = sep;
+ while (sep_idx < sep_end)
+ {
+ if ((*idx == *sep_idx))
+ {
+ if (len > 0)
+ {
+ if (curr_str < (int)strlen(substitutedstring))
+ {
+ // New token (= field)
+ if (addToken(retstr, &curr_str, (char*)(idx - len), len))
+ {
+ // Reset for next field
+ len = 0;
+ idx++;
+ }
+ else
+ {
+ *toks = 0;
+ freeArrayOfString(retstr, strlen(substitutedstring));
+ FREE(substitutedstring);
+ return NULL;
+ }
+ }
+
+ if (curr_str >= (int)strlen(substitutedstring))
+ {
+ *toks = curr_str + 1;
+ FREE(substitutedstring);
+ return retstr;
+ }
+ }
+ else
+ {
+ idx++;
+ len = 0;
+ }
+ }
+ else
+ {
+ sep_idx++;
+ }
+ }
+ }
+
+ if (*idx == '"')
+ {
+ // Count number of consecutive double quotes
+ int nbDoubleQuotes = 0;
+ const char *idxTmp = idx;
+
+ while (*idxTmp == '"')
+ {
+ idxTmp++;
+ }
+ nbDoubleQuotes = idxTmp - idx;
+
+ // if it is odd, we enter or leave a double quoted field
+ if (nbDoubleQuotes % 2 == 1)
+ {
+ inDoubleQuote = (inDoubleQuote == 0) ? 1 : 0;
+ }
+ len += nbDoubleQuotes;
+ idx += nbDoubleQuotes;
+ }
+ else
+ {
+ len++;
+ idx++;
+ }
+ }
+
+ if (len > 0)
+ {
+ // New token (= field)
+ if (!addToken(retstr, &curr_str, (char*)(idx - len), len))
+ {
+ *toks = 0;
+ freeArrayOfString(retstr, strlen(substitutedstring));
+ FREE(substitutedstring);
+ return NULL;
+ }
+ }
+
+ *toks = curr_str;
+
+ FREE(substitutedstring);
+
+ return retstr;
+}
+/* ==================================================================== */
diff --git a/modules/spreadsheet/src/c/splitLine.h b/modules/spreadsheet/src/c/splitLine.h
new file mode 100755
index 000000000..7a7ee6b3e
--- /dev/null
+++ b/modules/spreadsheet/src/c/splitLine.h
@@ -0,0 +1,30 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __SPLITLINE_H__
+#define __SPLITLINE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /**
+ * split a line by separator
+ */
+ char **splitLineCSV(const char *str, const char *sep, int *toks);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __SPLITLINE_H__ */
+/* ==================================================================== */
diff --git a/modules/spreadsheet/src/c/spreadsheet.rc b/modules/spreadsheet/src/c/spreadsheet.rc
new file mode 100755
index 000000000..e6eda1fa6
--- /dev/null
+++ b/modules/spreadsheet/src/c/spreadsheet.rc
@@ -0,0 +1,97 @@
+// Microsoft Visual C++ generated resource script.
+//
+
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+//#include "afxres.h"
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// French (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+#ifdef _WIN32
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 5,5,2,0
+ PRODUCTVERSION 5,5,2,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040c04b0"
+ BEGIN
+ VALUE "CompanyName", "Scilab"
+ VALUE "FileDescription", "spreadsheet module"
+ VALUE "FileVersion", "5, 5, 2, 0"
+ VALUE "InternalName", "spreadsheet"
+ VALUE "LegalCopyright", "Copyright (C) 2017"
+ VALUE "OriginalFilename", "spreadsheet.dll"
+ VALUE "ProductName", " spreadsheet"
+ VALUE "ProductVersion", "5, 5, 2, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x40c, 1200
+ END
+END
+
+#endif // French (France) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/modules/spreadsheet/src/c/utftolatin.c b/modules/spreadsheet/src/c/utftolatin.c
new file mode 100755
index 000000000..00ea10b90
--- /dev/null
+++ b/modules/spreadsheet/src/c/utftolatin.c
@@ -0,0 +1,223 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#include <string.h>
+#include "utftolatin.h"
+#include "MALLOC.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
+// =============================================================================
+char *utftolatin(char *utfString)
+{
+ char *latinString = NULL;
+ if (utfString)
+ {
+ size_t lenUtfString = strlen(utfString) + 1;
+ latinString = (char*) CALLOC(lenUtfString, sizeof(char));
+
+ if (latinString)
+ {
+ unsigned long ucs4 = 0;
+ int c = 0, state = 0, octets = 0;
+ char *t = NULL;
+
+ ucs4 = 0;
+ state = 0;
+ octets = 0;
+
+ t = latinString;
+ *t = 0;
+
+ while ((c = *(utfString++)) != 0)
+ {
+ switch (state)
+ {
+ case 0: /* start of utf8 char */
+ if ((c & 0xfe) == 0xfc)
+ {
+ /* 6 octets */
+ ucs4 = (c & 0x01) << 30;
+ octets = 6;
+ state = 5;
+ /* look for 5 more */
+ }
+ else if ((c & 0xfc) == 0xf8)
+ {
+ /* 5 octets */
+ ucs4 = (c & 0x03) << 24;
+ octets = 5;
+ state = 4;
+ }
+ else if ((c & 0xf8) == 0xf0)
+ {
+ /* 4 octets */
+ ucs4 = (c & 0x07) << 18;
+ octets = 4;
+ state = 3;
+ }
+ else if ((c & 0xf0) == 0xe0)
+ {
+ /* 3 octets */
+ ucs4 = (c & 0x0f) << 12;
+ octets = 3;
+ state = 2;
+ }
+ else if ((c & 0xe0) == 0xc0)
+ {
+ /* 2 octets */
+ ucs4 = (c & 0x1f) << 6;
+ octets = 2;
+ state = 1;
+ /* look for 1 more */
+ }
+ else if ((c & 0x80) == 0x00)
+ {
+ /* 1 octet */
+ ucs4 = (c & 0x7f);
+ octets = 1;
+ state = 0;
+ /* we have a result */
+ }
+ else
+ {
+ /* error */
+ FREE(latinString);
+ return strdup(utfString);
+ }
+ break;
+ case 1:
+ if ((c & 0xc0) == 0x80)
+ {
+ ucs4 = ucs4 | (c & 0x3f);
+ if (ucs4 < 0x80 || ucs4 > 0x7ff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ }
+ else
+ {
+ ucs4 = 0xffffffff;
+ }
+ state = 0; /* we're done and have a result */
+ break;
+ case 2:
+ if ((c & 0xc0) == 0x80)
+ {
+ ucs4 = ucs4 | ((c & 0x3f) << 6);
+ state = 1;
+ }
+ else
+ {
+ ucs4 = 0xffffffff;
+ state = 0;
+ }
+ break;
+ case 3:
+ if ((c & 0xc0) == 0x80)
+ {
+ ucs4 = ucs4 | ((c & 0x3f) << 12);
+ state = 2;
+ }
+ else
+ {
+ ucs4 = 0xffffffff;
+ state = 0;
+ }
+ break;
+ case 4:
+ if ((c & 0xc0) == 0x80)
+ {
+ ucs4 = ucs4 | ((c & 0x3f) << 18);
+ state = 3;
+ }
+ else
+ {
+ ucs4 = 0xffffffff;
+ state = 0;
+ }
+ break;
+ case 5:
+ if ((c & 0xc0) == 0x80)
+ {
+ ucs4 = ucs4 | ((c & 0x3f) << 24);
+ state = 4;
+ }
+ else
+ {
+ ucs4 = 0xffffffff;
+ state = 0;
+ }
+ break;
+ default: /* error, can't happen */
+ {
+ ucs4 = 0xffffffff;
+ state = 0;
+ break;
+ }
+ }
+ if (state == 0)
+ {
+ switch (octets)
+ {
+ case 1:
+ if (ucs4 > 0x7f)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ case 2:
+ if (ucs4 < 0x80 || ucs4 > 0x7ff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ case 3:
+ if (ucs4 < 0x800 || ucs4 > 0xffff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ case 4:
+ if (ucs4 < 0x10000 || ucs4 > 0x1fffff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ case 5:
+ if (ucs4 < 0x200000 || ucs4 > 0x3ffffff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ case 6:
+ if (ucs4 < 0x4000000 || ucs4 > 0x7fffffff)
+ {
+ ucs4 = 0xffffffff;
+ }
+ break;
+ default:
+ ucs4 = 0xffffffff;
+ break;
+ }
+
+ if (ucs4 != 0xffffffff)
+ {
+ *(t++) = (char)ucs4;
+ }
+ }
+ }
+ *t = 0;
+ }
+ }
+ return latinString;
+}
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/utftolatin.h b/modules/spreadsheet/src/c/utftolatin.h
new file mode 100755
index 000000000..cf1059909
--- /dev/null
+++ b/modules/spreadsheet/src/c/utftolatin.h
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+#ifndef __UTFTOLATIN_H__
+#define __UTFTOLATIN_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ char *utftolatin(char *utfString);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __UTFTOLATIN_H__ */
+// =============================================================================
diff --git a/modules/spreadsheet/src/c/xls.c b/modules/spreadsheet/src/c/xls.c
new file mode 100755
index 000000000..4a8b7384b
--- /dev/null
+++ b/modules/spreadsheet/src/c/xls.c
@@ -0,0 +1,1131 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2005-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+ * Copyright (C) 2005-2008 - INRIA - Pierrick MODE
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "core_math.h"
+#include "MALLOC.h" /* MALLOC */
+#include "sciprint.h"
+#include "returnanan.h"
+#include "xls.h"
+#include "mseek.h"
+#include "mtell.h"
+#include "mget.h"
+/*------------------------------------------------------------------*/
+#define typ_short "s"
+#define typ_ushort "us"
+#define typ_char "c"
+#define typ_uchar "uc"
+#define typ_double "d"
+#define typ_int "i"
+/*------------------------------------------------------------------*/
+extern int ripole(char *inputfile, char *outputfile, int debug, int verbose);
+/*------------------------------------------------------------------*/
+/*Prototype*/
+static double NumFromRk2(long rk);
+static void getBoundsheets(int * fd, char ***Sheetnames, int** Abspos, int *nsheets, double *cur_pos, int *err);
+static void getSST(int *fd, short Len, int BIFF, int *ns, char ***sst, int *err);
+static void getBOF(int *fd , int* Data, int *err);
+static void getString(int *fd, short *count, short *Len, int flag, char **str, int *err);
+
+/**
+ ** Bruno : Defined but not used ... so what !!!!!!!!
+ static int get_oleheader(int *fd);
+**/
+/*------------------------------------------------------------------*/
+void xls_read(int *fd, int *cur_pos, double **data, int **chainesind, int *N, int *M, int *err)
+{
+ /*---------------Declaration Des Variables*--------------------*/
+ unsigned short Opcode = 0, Len = 0; /*Code Operationnel et Longueur du tag a lire*/
+ double *valeur = NULL; /*Tableau Recapitulatif (Final) des valeurs de la feuille Excel*/
+ double pos = 0;
+
+ int one = 1;
+ int three = 3;
+
+ int i = 0; /*Variables de boucle*/
+ int hauteur = 0, longueur = 0, capacite = 0; /*Hauteur, longueur de la feuille, */
+ /*int taille = 0; Nombre de types de caract�ers a enregistrer*/
+ char *sheetname = NULL; /*Nom de la feuille*/
+ int rkvalue = 0; /*RK value*/
+ /*for RK */
+ unsigned short row = 0, col = 0, xf = 0;/*Index to row, to column, and to XF record*/
+ /*for MULRK */
+ unsigned short ixfe = 0;
+ short colFirst = 0, colLast = 0, ncol = 0; /*Index to rox, to first column (fc)*/
+ /* for LABELSST */
+ short labelsst1[3];
+ int indsst = 0; /*Index to SST record*/
+ /* for DIMENSIONS */
+ int f_row = 0, l_row = 0;
+ unsigned short f_col = 0, l_col = 0, notused = 0;
+ /* for FORMULA */
+ double resultat = 0.;/*Result of the formula*/
+ short optionflag = 0;/*Option flags*/
+ int formula_notused = 0; /*Not used*/
+ double NaN = C2F(returnanan)();
+
+ int BOFData[7]; /*[BIFF Version DataType Identifier Year HistoryFlags LowestXlsVersion]*/
+ /* initialization of pointers corresponding to malloc's */
+ valeur = (double *)NULL;
+ sheetname = (char *)NULL;
+ *chainesind = (int *) NULL;
+ *err = 0;
+
+ pos = (double)(*cur_pos);
+ C2F(mseek) (fd, &pos, "set", err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ /* first record should be a BOF */
+ getBOF(fd , BOFData, err);
+
+ if (*err > 0)
+ {
+ return;
+ }
+ if (BOFData[0] < 0) /* not a BOF */
+ {
+ *err = 2;
+ return;
+ }
+ if (BOFData[0] != 8) /* not a BIFF8 */
+ {
+ *err = 3;
+ return;
+ }
+
+ C2F(mtell) (fd, &pos, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ while (1)
+ {
+ C2F(mseek) (fd, &pos, "set", err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ /*Enregistrement de l'Opcode et de la Len du tag*/
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, &Len, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ switch (Opcode)
+ {
+ case 10:/*EOF */
+ *N = hauteur;
+ *M = longueur;
+ *data = valeur;
+ *cur_pos = (int)pos;
+ *cur_pos = *cur_pos + 4 + Len;
+ return;
+ case 638: /*RK*/
+ C2F(mgetnc) (fd, (void*)&row, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&col, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ // Check col and row are in bounds
+ if ((col >= longueur) || (row >= hauteur))
+ {
+ *err = 2;
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&xf , &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &rkvalue , &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ valeur[col * (hauteur) + row] = NumFromRk2(rkvalue);
+ break;
+ case 515: /*Number*/
+ C2F(mgetnc) (fd, (void*)&row, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&col, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ // Check col and row are in bounds
+ if ((col >= longueur) || (row >= hauteur))
+ {
+ *err = 2;
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&xf , &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &resultat , &one, typ_double, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ valeur[col * (hauteur) + row] = resultat ;
+ break;
+
+ case 189: /*MULRK*/
+ C2F(mgetnc) (fd, (void*)&row, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&colFirst, &one, typ_short, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ // Check col and row are in bounds
+ if ((colFirst >= longueur) || (row >= hauteur))
+ {
+ *err = 2;
+ goto ErrL;
+ }
+ /*List of nc=lc-fc+1 XF/RK structures*/
+ ncol = (Len - 6) / 6;
+ for (i = 0; i < ncol; i++)
+ {
+ C2F(mgetnc) (fd, (void*) &ixfe, &one, typ_short, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &rkvalue, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ valeur[row + (colFirst + i)*hauteur] = NumFromRk2(rkvalue);
+ }
+
+ /*Index of last column*/
+ C2F(mgetnc) (fd, (void*) &colLast, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ break;
+
+ case 253:/*LABELSST*/
+ C2F(mgetnc) (fd, (void*) labelsst1, &three, typ_short, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &indsst , &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ /*Allocation dans le tableau final*/
+ col = labelsst1[1];
+ row = labelsst1[0];
+ // Check col and row are in bounds
+ if ((col >= longueur) || (row >= hauteur))
+ {
+ *err = 2;
+ goto ErrL;
+ }
+ (*chainesind)[col * (hauteur) + row] = indsst + 1;
+ break;
+ case 512:/* DIMENSIONS*/
+ C2F(mgetnc) (fd, (void*) &f_row, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &l_row, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &f_col, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &l_col, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &notused, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ /*Calcul de longueur, hauteur et capacite de la feuille*/
+ hauteur = l_row; /*-f_row;*/
+ longueur = l_col; /*-f_col;*/
+ capacite = hauteur * longueur;
+
+ /*Declaration des tableaux de synthese*/
+ if ((valeur = (void*) MALLOC((capacite + 1) * sizeof(double))) == NULL)
+ {
+ goto ErrL;
+ }
+ if ((*chainesind = (int *) MALLOC((capacite + 1) * sizeof(int))) == NULL)
+ {
+ goto ErrL;
+ }
+ for (i = 0; i <= capacite; i++)
+ {
+ (*chainesind)[i] = 0;
+ valeur[i] = NaN;
+ }
+ break;
+ case 6:/* FORMULA*/
+ C2F(mgetnc) (fd, (void*) &row, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &col, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ // Check col and row are in bounds
+ if ((col >= longueur) || (row >= hauteur))
+ {
+ *err = 2;
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*) &xf, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ C2F(mgetnc) (fd, (void*) &resultat, &one, typ_double, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ valeur[(col * hauteur + row)] = resultat;
+
+ C2F(mgetnc) (fd, (void*)&optionflag, &one, typ_short, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ C2F(mgetnc) (fd, (void*) &formula_notused, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+
+ /*Formuled data*/
+
+ /*taille=Len-2-2-2-8-2-4;
+ char formuladata[taille];
+ C2F(mgetnc) (fd, (void*) formuladata, &taille, typ_char, err);
+ if (*err > 0) goto ErrL;*/
+
+ break;
+ }
+
+ pos = pos + 4 + Len;
+ }
+
+ *cur_pos = (int)pos;
+ return;
+ErrL:
+ {
+ FREE(sheetname);
+ FREE(valeur);
+ FREE(*chainesind);
+ if (*err == 0)
+ {
+ *err = 1; /* malloc problem */
+ }
+ else
+ {
+ *err = 2; /* read problem */
+ }
+ return;
+ }
+}
+
+
+void xls_open(int *err, int *fd, char ***sst, int *ns, char ***Sheetnames, int** Abspos, int *nsheets)
+{
+ /* if opt==1 it is supposed that the current file position is at the beginning of oleheader
+ * if opt==0 it is supposed that the current file position is at the beginning of workbook stream
+ */
+
+ /* we suppose that the ole file as a simple structure:
+ * Workbook stream should follows immediately the header
+ * and is strored in sequential sections
+ */
+
+ /*return *err:
+ 0 = OK
+ 1 = not an OLE file
+ 2 = no Workbook included
+ 3 = memory allocation problem
+ 4 = incorrect file
+ 5 = not a BIFF8 xls file
+ */
+ /*---------------D�claration Des Variables*--------------------*/
+ int k, one = 1;
+ double cur_pos, init_pos;
+ unsigned short Opcode, Len;
+ /*BOF data*/
+ int BOFData[7]; /*[BIFF Version DataType Identifier Year HistoryFlags LowestXlsVersion]*/
+ *nsheets = 0;
+ *err = 0;
+ /*---------------D�claration Des Variables*--------------------*/
+
+ /* if (get_oleheader(fd)) {
+ *err=1;
+ return;
+ }*/
+ C2F(mtell) (fd, &cur_pos, err);
+ init_pos = cur_pos;
+
+ /* first record should be a BOF */
+ getBOF(fd , BOFData, err);
+ if (*err > 0)
+ {
+ return;
+ }
+
+ if (BOFData[0] < 0) /* not a BOF */
+ {
+ *err = 4;
+ return;
+ }
+ if (BOFData[0] != 8) /* not a BIFF8 */
+ {
+ *err = 5;
+ return;
+ }
+
+ C2F(mtell) (fd, &cur_pos, err);
+ if (*err > 0)
+ {
+ goto Err2;
+ }
+
+ /* loops on records till an EOF is found */
+ while (1)
+ {
+ C2F(mseek) (fd, &cur_pos, "set", err);
+ if (*err > 0)
+ {
+ goto Err2;
+ }
+ /*Enregistrement de l'Opcode et de la Len du tag*/
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto Err2;
+ }
+ C2F(mgetnc) (fd, &Len, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto Err2;
+ }
+
+ switch (Opcode)
+ {
+ case 10: /*EOF*/
+ cur_pos = cur_pos + 4 + Len;
+ return ;
+ case 133: /* Boundsheets */
+ getBoundsheets(fd, Sheetnames, Abspos, nsheets, &cur_pos, err);
+ for (k = 0; k < *nsheets; k++)
+ {
+ (*Abspos)[k] += init_pos;
+ }
+ if (*err > 0)
+ {
+ return;
+ }
+ break;
+ case 252: /* SST= Shared String table*/
+ getSST(fd, Len, BOFData[0], ns, sst, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ cur_pos = cur_pos + 4 + Len;
+ break;
+ default:
+ cur_pos = cur_pos + 4 + Len;
+ }
+ }
+
+Err2:
+ *err = 4; /* read problem */
+ return;
+
+}
+
+static double NumFromRk2(long rk)
+{
+ double num;
+ if (rk & 0x02)
+ {
+ /* int*/
+ num = (double) (rk >> 2);
+ }
+ else
+ {
+ /* hi words of IEEE num*/
+ *((int *)&num + 1) = rk & 0xfffffffc;
+ *((int *)&num) = 0;
+ }
+ if (rk & 0x01)
+ /* divide by 100*/
+ {
+ num /= 100;
+ }
+ return num;
+}
+
+static void getBOF(int *fd , int* Data, int *err)
+{
+ /* return Data a vector [BIFF Version DataType Identifier Year HistoryFlags LowestXlsVersion]
+ * works for BIFF2 to BIFF8 records */
+ int BIFF;
+ short Version;
+ short DataType;
+ short Identifier = 0;
+ short Year = 0;
+ int HistoryFlags = 0;
+ int LowestXlsVersion = 0;
+
+ unsigned short Opcode;
+ unsigned short Len;
+ int one = 1;
+
+ C2F(mgetnc) (fd, (void*)&Opcode, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&Len, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ return;
+ }
+
+ switch (Opcode)
+ {
+ case 2057: /*Begin of file, BOF for BIFF5 BIFF7 BIFF8 BIFF8X*/
+ C2F(mgetnc) (fd, (void*)&Version, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&DataType, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&Identifier, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&Year, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ if (Len == 16)
+ {
+ C2F(mgetnc) (fd, (void*)&HistoryFlags, &one, typ_int, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&LowestXlsVersion, &one, typ_int, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ BIFF = 8;
+ if (Version != 1536)
+ {
+ return;
+ }
+ }
+ else
+ {
+ BIFF = 7;
+ }
+ break;
+ case 1033 : /*Interpr�tation du BIFF4 0409 H*/
+ C2F(mgetnc) (fd, (void*)&Version, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&DataType, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ BIFF = 4;
+ break;
+ case 521 : /*Interpr�tation du BIFF3 0209 H*/
+ C2F(mgetnc) (fd, (void*)&Version, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&DataType, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ BIFF = 3;
+ break;
+ case 9 : /*Interpr�tation du BIFF2 0009 H*/
+ C2F(mgetnc) (fd, (void*)&Version, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ C2F(mgetnc) (fd, (void*)&DataType, &one, typ_short, err);
+ if (*err > 0)
+ {
+ return;
+ }
+ BIFF = 2;
+ break;
+ default:
+ BIFF = -1; /* not a BOF record */
+ Version = 0;
+ DataType = 0;
+ }
+ Data[0] = BIFF;
+ Data[1] = Version;
+ Data[2] = DataType;
+ Data[3] = Identifier;
+ Data[4] = Year;
+ Data[5] = HistoryFlags;
+ Data[6] = LowestXlsVersion;
+
+}
+
+static void getSST(int *fd, short Len, int BIFF, int *ns, char ***sst, int *err)
+{
+ int i = 0, one = 1;
+ /* SST data */
+ int ntot = 0; /*total number of strings */
+ int nm = 0;/*Number of following strings*/
+ short count = 0;
+
+ *ns = 0;
+ *sst = NULL;
+
+ if (BIFF == 8)
+ {
+ /*Total number of strings in the workbook*/
+ C2F(mgetnc) (fd, (void*)&ntot, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&nm, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *ns = nm;
+ count += 8;
+ if (nm != 0)
+ {
+ if ( (*sst = (char **)MALLOC(nm * sizeof(char*))) == NULL)
+ {
+ goto ErrL;
+ }
+ for (i = 0; i < nm; i++)
+ {
+ (*sst)[i] = NULL;
+ }
+ for (i = 0; i < nm; i++) /* LOOP ON STRINGS */
+ {
+ *err = i; /*for debug*/
+ getString(fd, &count, &Len, 1, &((*sst)[i]), err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ /*printf("i=%d, %s\n",i,(*sst)[i]);*/
+ }
+ }
+ }
+ return;
+ErrL:
+ if (*sst != NULL)
+ {
+ for (i = 0; i < nm; i++)
+ if ( (*sst)[i] != NULL )
+ {
+ FREE((*sst)[i]);
+ }
+ FREE(*sst);
+ }
+
+ if (*err == 0)
+ {
+ *err = 3; /* malloc problem */
+ }
+ else
+ {
+ *err = 4; /* read problem */
+ }
+}
+
+static void getString(int *fd, short *PosInRecord, short *RecordLen, int flag, char **str, int *err)
+{
+ short ln = 0;
+ short Opcode = 0;/* to store tag information */
+ int BytesToBeRead = 0, one = 1, strindex = 0;
+ char OptionFlag = 0;
+ int sz = 0; /* for extended string data */
+ short rt = 0;/* for rich string data */
+ int UTFEncoding = 0, extendedString = 0, richString = 0;
+ int j = 0, l1 = 0;
+
+ *str = (char *)NULL;
+ *err = 0;
+ ln = 0;
+
+ /*check for continue tag */
+ if (flag && (*PosInRecord == *RecordLen)) /* data limit encountered */
+ {
+ /*check for continue tag */
+ /*lecture de l'Opcode et de la RecordLen du tag*/
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ if ((*err > 0) || (Opcode != 60))
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, RecordLen, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord = 0;
+ }
+
+ /* get the number of characters included in the string (number of bytes or number of couple of bytes) */
+ if (flag) /* getString called by getSST */
+ {
+ C2F(mgetnc) (fd, (void*)&ln, &one, typ_short, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += 2;
+ }
+ else /* getString called by getBoundsheets */
+ {
+ C2F(mgetnc) (fd, (void*)&ln, &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += 1;
+ }
+
+ /*get the encoding options */
+ C2F(mgetnc) (fd, (void*)&OptionFlag, &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += 1;
+
+ UTFEncoding = (OptionFlag & 0x01) == 1;
+ extendedString = (OptionFlag & 0x04) != 0;
+ richString = (OptionFlag & 0x08) != 0;
+
+ if (richString) /*richString*/
+ {
+ C2F(mgetnc) (fd, (void*)&rt, &one, typ_short, err);
+ *PosInRecord += 2;
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ }
+
+ if (extendedString) /* extendedString */
+ {
+ C2F(mgetnc) (fd, (void*)&sz, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += 4;
+ }
+
+ /* number of bytes to be read */
+ BytesToBeRead = (UTFEncoding) ? ln * 2 : ln;
+
+
+ if ((*str = (char*) MALLOC((BytesToBeRead + 1) * sizeof(char))) == NULL)
+ {
+ goto ErrL;
+ }
+ /* read the bytes */
+
+ if (!flag || (*PosInRecord + BytesToBeRead <= *RecordLen))
+ {
+ /* all bytes are in the same record */
+ C2F(mgetnc) (fd, (void*)*str, &BytesToBeRead, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += (short)BytesToBeRead;
+ }
+ else /* char stream contains at least one "continue" */
+ {
+ int bytesRead = *RecordLen - *PosInRecord; /* number of bytes before continue */
+ strindex = 0; /*current position in str*/
+ /* read bytes before the "continue" */
+ /* according to documentation bytesRead should be strictly positive */
+ C2F(mgetnc) (fd, (void*)(*str + strindex), &bytesRead, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ strindex += bytesRead;
+ *PosInRecord += (short)bytesRead;
+ while (BytesToBeRead - bytesRead > 0)
+ {
+ /*"continue" tag assumed, verify */
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ if ((*err > 0) || (Opcode != 60))
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, RecordLen, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord = 0;
+ /* encoding option may change !!!! */
+ C2F(mgetnc) (fd, (void*)&OptionFlag, &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ *PosInRecord += 1;
+
+ if ((!UTFEncoding && (OptionFlag == 0)) || (UTFEncoding && (OptionFlag != 0)))
+ {
+ /*string encoding does not change */
+ l1 = Min(BytesToBeRead - bytesRead, *RecordLen - *PosInRecord);
+ C2F(mgetnc) (fd, (void*)(*str + strindex), &l1, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ bytesRead += l1;
+ strindex += l1;
+ *PosInRecord += (short)l1;
+ }
+ else if (UTFEncoding && (OptionFlag == 0))
+ {
+ /* character encoding changes from twobytes to a single byte*/
+ /* may this happen ???? */
+ l1 = Min(BytesToBeRead - bytesRead, *RecordLen - *PosInRecord);
+ for (j = 0; j < l1; j++)
+ {
+ C2F(mgetnc) (fd, (void*)(*str + strindex), &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ (*str)[strindex + 1] = '\0';
+ strindex += 2;
+ *PosInRecord += 2;
+ UTFEncoding = 0;
+ }
+ }
+ else
+ {
+ /* character encoding changes from a single byte to two bytes */
+ /* first, convert read characters to two bytes*/
+ char *str1 = *str;
+ strindex = 0;
+ str = (char**) MALLOC((2 * BytesToBeRead + 1) * sizeof(char*));
+ if (str == NULL)
+ {
+ goto ErrL;
+ }
+ for (j = 0; j < bytesRead; j++)
+ {
+ (*str)[strindex] = str1[j];
+ (*str)[strindex + 1] = '\0';
+ strindex += 2;
+ }
+ FREE(str1);
+ BytesToBeRead = BytesToBeRead * 2;
+ bytesRead = bytesRead * 2;
+ /* read following two bytes characters */
+ l1 = Min((BytesToBeRead - bytesRead) * 2, *RecordLen - *PosInRecord);
+ C2F(mgetnc) (fd, (void*)(*str + strindex), &l1, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ bytesRead += l1;
+ strindex += l1;
+ *PosInRecord += (short)l1;
+ UTFEncoding = 1;
+ }
+
+ }
+
+ } /*all character read */
+
+ /* For extended strings, skip over the extended string data*/
+ /* may continuation records appear here? */
+ l1 = 4 * rt;
+ if (richString)
+ {
+ double dl1 = (double)l1;
+ C2F(mseek) (fd, &dl1, "cur", err);
+ *PosInRecord += (short)l1;
+ }
+ if (extendedString)
+ {
+ double dsz = (double)sz;
+ C2F(mseek) (fd, &dsz, "cur", err);
+ *PosInRecord += (short)sz;
+ }
+
+ /* add string terminaison */
+ if (UTFEncoding)
+ {
+ /* Scilab currently do not support unicode, so we remove the second byte*/
+ strindex = 0;
+ for (j = 0; j < BytesToBeRead; j += 2)
+ {
+ (*str)[strindex] = (*str)[j];
+ strindex++;
+ }
+ BytesToBeRead = BytesToBeRead / 2;
+ }
+ (*str)[BytesToBeRead] = '\0';
+
+
+ return;
+ErrL:
+ if (*err == 0)
+ {
+ FREE(*str);
+ *err = 3; /* malloc problem */
+ }
+ else
+ {
+ *err = 4; /* read problem */
+ }
+}
+
+static void getBoundsheets(int * fd, char ***Sheetnames, int** Abspos, int *nsheets, double *cur_pos, int *err)
+{
+ /* the global workbook contains a sequence of boudsheets this procedure reads all
+ * the sequence and returns a vector o sheetnames, a vector of absolute sheet positions*/
+ int abspos; /* Absolute stream position of BoF*/
+ char visibility, sheettype; /*Visiblity , Sheet type*/
+ double pos;
+ unsigned short Opcode;
+ unsigned short Len;
+ int one = 1;
+ int ns, i;
+
+ *Sheetnames = (char **)NULL;
+ *Abspos = (int *)NULL;
+ *err = 0;
+
+ /* memorize the first boundsheet beginning */
+ pos = *cur_pos;
+ /* Count number of boundsheets */
+ ns = 0;
+ while (1)
+ {
+ C2F(mseek) (fd, cur_pos, "set", err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, &Len, &one, typ_ushort, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ if (Opcode == 133)
+ {
+ C2F(mgetnc) (fd, (void*)&abspos, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&visibility, &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&sheettype, &one, typ_char, err);
+ if (sheettype == 0) /* worksheet */
+ {
+ ns++;
+ }
+ *cur_pos = *cur_pos + 4 + Len;
+ }
+ else
+ {
+ break;
+ }
+
+ }
+
+ *nsheets = ns;
+ /*alloc the Sheetnames ans Abspos arrays */
+ if ( (*Sheetnames = (char **)MALLOC(ns * sizeof(char*))) == NULL)
+ {
+ goto ErrL;
+ }
+ if ( (*Abspos = (int *)MALLOC(ns * sizeof(int))) == NULL)
+ {
+ goto ErrL;
+ }
+
+ /* rescan boundsheet sequence to get the data */
+ *cur_pos = pos;
+ i = -1;
+ while (1)
+ {
+ C2F(mseek) (fd, cur_pos, "set", err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
+ C2F(mgetnc) (fd, &Len, &one, typ_ushort, err);
+ if (Opcode == 133)
+ {
+ C2F(mgetnc) (fd, (void*)&abspos, &one, typ_int, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&visibility, &one, typ_char, err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ C2F(mgetnc) (fd, (void*)&sheettype, &one, typ_char, err);
+ if (sheettype == 0) /* worksheet */
+ {
+ short count = 0;
+ i++;
+ (*Abspos)[i] = abspos;
+ getString(fd, &count, (short *) &Len, 0, &((*Sheetnames)[i]), err);
+ if (*err > 0)
+ {
+ goto ErrL;
+ }
+ }
+ *cur_pos = *cur_pos + 4 + Len;
+ }
+ else
+ {
+ break;
+ }
+
+ }
+ return;
+ErrL:
+ if (*Sheetnames != NULL)
+ {
+ for (i = 0; i < ns; i++)
+ if ( (*Sheetnames)[i] != NULL )
+ {
+ FREE((*Sheetnames)[i]);
+ }
+ FREE(*Sheetnames);
+ }
+ FREE(*Abspos);
+ if (*err == 0)
+ {
+ *err = 3; /* malloc problem */
+ }
+ else
+ {
+ *err = 4; /* read problem */
+ }
+}
+
+/**
+ ** Bruno : Defined but not used... so what !!!!!!!!!
+ **
+ static int get_oleheader(int *fd)
+ {
+ unsigned char MAGIC[8] = { 0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1 };
+ unsigned char header[512];
+ int c,ierr;
+
+ C2F(mgetnc) (fd, (void *)header,(c=512,&c), typ_uchar, &ierr);
+ if (ierr !=0) return 1;
+ if (memcmp (header, MAGIC, sizeof (MAGIC)) != 0) return 1;
+ return 0;
+ }
+**/
diff --git a/modules/spreadsheet/src/c/xls.h b/modules/spreadsheet/src/c/xls.h
new file mode 100755
index 000000000..f7e6a08e2
--- /dev/null
+++ b/modules/spreadsheet/src/c/xls.h
@@ -0,0 +1,30 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __XLS_H__
+#define __XLS_H__
+
+/**
+* xls_read
+*
+*/
+void xls_read(int *fd, int *cur_pos, double **data, int **chainesind, int *N, int *M, int *err);
+
+/**
+* xls_open
+*
+*/
+void xls_open(int *err, int *fd, char ***sst, int *ns, char ***Sheetnames, int** Abspos, int *nsheets);
+
+#endif /* __XLS_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/src/nospreadsheet/nospreadsheet.c b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.c
new file mode 100755
index 000000000..8073805b1
--- /dev/null
+++ b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.c
@@ -0,0 +1,23 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include "gw_spreadsheet.h"
+#include "Scierror.h"
+#include "localization.h"
+/*--------------------------------------------------------------------------*/
+int gw_spreadsheet(void)
+{
+ Scierror(999, _("Scilab spreadsheet module not installed.\n"));
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/spreadsheet/src/nospreadsheet/nospreadsheet.rc b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.rc
new file mode 100755
index 000000000..d7ceef095
--- /dev/null
+++ b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.rc
@@ -0,0 +1,97 @@
+// Microsoft Visual C++ generated resource script.
+//
+
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+//#include "afxres.h"
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// French (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+#ifdef _WIN32
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 5,5,2,0
+ PRODUCTVERSION 5,5,2,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040c04b0"
+ BEGIN
+ VALUE "FileDescription", "nospreadsheet module"
+ VALUE "FileVersion", "5, 5, 2, 0"
+ VALUE "InternalName", "nospreadsheet module"
+ VALUE "LegalCopyright", "Copyright (C) 2017"
+ VALUE "OriginalFilename", "nospreadsheet.dll"
+ VALUE "ProductName", " nospreadsheet"
+ VALUE "ProductVersion", "5, 5, 2, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x40c, 1200
+ END
+END
+
+#endif // French (France) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj
new file mode 100755
index 000000000..8345f23b7
--- /dev/null
+++ b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AC43B2A6-601A-4E15-97DF-2B296FFAD4F9}</ProjectGuid>
+ <RootNamespace>nospreadsheet</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../core/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../api_scilab/includes;../../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>../../../../bin/libintl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../core/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../api_scilab/includes;../../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>../../../../bin/libintl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../core/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../api_scilab/includes;../../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>../../../../bin/libintl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../core/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../api_scilab/includes;../../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPREADSHEET_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>../../../../bin/libintl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="nospreadsheet.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="nospreadsheet.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\localization\src\localization.vcxproj">
+ <Project>{ecffeb0c-1eda-45ee-9a10-b18143852e17}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj">
+ <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj.filters b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj.filters
new file mode 100755
index 000000000..5dc6c2726
--- /dev/null
+++ b/modules/spreadsheet/src/nospreadsheet/nospreadsheet.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ <Filter Include="Libraries Dependencies">
+ <UniqueIdentifier>{6f778267-99a5-4901-b33b-520286c5ae08}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="nospreadsheet.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="nospreadsheet.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_1.csv b/modules/spreadsheet/tests/nonreg_tests/bug_1.csv
new file mode 100755
index 000000000..d31719db2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_1.csv
@@ -0,0 +1,7534 @@
+Time,ecart
+0,0
+4e-006,0
+8e-006,0
+1e-005,0
+1.2e-005,0
+1.6e-005,0
+2e-005,0
+2.4e-005,0
+2.8e-005,0
+3e-005,0
+3.2e-005,0
+3.6e-005,0
+4e-005,0
+4.4e-005,0
+4.8e-005,0
+5e-005,0
+5.2e-005,0
+5.6e-005,0
+6e-005,0
+6.4e-005,0
+6.8e-005,0
+7e-005,0
+7.2e-005,0
+7.6e-005,0
+8e-005,0
+8.4e-005,0
+8.8e-005,0
+9e-005,0
+9.2e-005,0
+9.6e-005,0
+0.0001,0
+0.000104,0
+0.000108,0
+0.00011,0
+0.000112,0
+0.000116,0
+0.00012,0
+0.000124,0
+0.000128,0
+0.00013,0
+0.000132,0
+0.000136,0
+0.00014,0
+0.000144,0
+0.000148,0
+0.00015,0
+0.000152,0
+0.000156,0
+0.00016,0
+0.000164,0
+0.000168,0
+0.00017,0
+0.000172,0
+0.000176,0
+0.00018,0
+0.000184,0
+0.000188,0
+0.00019,0
+0.000192,0
+0.000196,0
+0.0002,0
+0.000204,0
+0.000208,0
+0.00021,0
+0.000212,0
+0.000216,0
+0.00022,0
+0.000224,0
+0.000228,0
+0.00023,0
+0.000232,0
+0.000236,0
+0.00024,0
+0.000244,0
+0.000248,0
+0.00025,0
+0.000252,0
+0.000256,0
+0.00026,0
+0.000264,0
+0.000268,0
+0.00027,0
+0.000272,0
+0.000276,0
+0.00028,0
+0.000284,0
+0.000288,0
+0.00029,0
+0.000292,0
+0.000296,0
+0.0003,0
+0.000304,0
+0.000308,0
+0.00031,0
+0.000312,0
+0.000316,0
+0.00032,0
+0.000324,0
+0.000328,0
+0.00033,0
+0.000332,0
+0.000336,0
+0.00034,0
+0.000344,0
+0.000348,0
+0.00035,0
+0.000352,0
+0.000356,0
+0.00036,0
+0.000364,0
+0.000368,0
+0.00037,0
+0.000372,0
+0.000376,0
+0.00038,0
+0.000384,0
+0.000388,0
+0.00039,0
+0.000392,0
+0.000396,0
+0.0004,0
+0.000404,0
+0.000408,0
+0.00041,0
+0.000412,0
+0.000416,0
+0.00042,0
+0.000424,0
+0.000428,0
+0.00043,0
+0.000432,0
+0.000436,0
+0.00044,0
+0.000444,0
+0.000448,0
+0.00045,0
+0.000452,0
+0.000456,0
+0.00046,0
+0.000464,0
+0.000468,0
+0.00047,0
+0.000472,0
+0.000476,0
+0.00048,0
+0.000484,0
+0.000488,0
+0.00049,0
+0.000492,0
+0.000496,0
+0.0005,0
+0.000504,0
+0.000508,0
+0.00051,0
+0.000512,0
+0.000516,0
+0.00052,0
+0.000524,0
+0.000528,0
+0.00053,0
+0.000532,0
+0.000536,0
+0.00054,0
+0.000544,0
+0.000548,0
+0.00055,0
+0.000552,0
+0.000556,0
+0.00056,0
+0.000564,0
+0.000568,0
+0.00057,0
+0.000572,0
+0.000576,0
+0.00058,0
+0.000584,0
+0.000588,0
+0.00059,0
+0.000592,0
+0.000596,0
+0.0006,0
+0.000604,0
+0.000608,0
+0.00061,0
+0.000612,0
+0.000616,0
+0.00062,0
+0.000624,0
+0.000628,0
+0.00063,0
+0.000632,0
+0.000636,0
+0.00064,0
+0.000644,0
+0.000648,0
+0.00065,0
+0.000652,0
+0.000656,0
+0.00066,0
+0.000664,0
+0.000668,0
+0.00067,0
+0.000672,0
+0.000676,0
+0.00068,0
+0.000684,0
+0.000688,0
+0.00069,0
+0.000692,0
+0.000696,0
+0.0007,0
+0.000704,0
+0.000708,0
+0.00071,0
+0.000712,0
+0.000716,0
+0.00072,0
+0.000724,0
+0.000728,0
+0.00073,0
+0.000732,0
+0.000736,0
+0.00074,0
+0.000744,0
+0.000748,0
+0.00075,0
+0.000752,0
+0.000756,0
+0.00076,0
+0.000764,0
+0.000768,0
+0.00077,0
+0.000772,0
+0.000776,0
+0.00078,0
+0.000784,0
+0.000788,0
+0.00079,0
+0.000792,0
+0.000796,0
+0.0008,0
+0.000804,0
+0.000808,0
+0.00081,0
+0.000812,0
+0.000816,0
+0.00082,0
+0.000824,0
+0.000828,0
+0.00083,0
+0.000832,0
+0.000836,0
+0.00084,0
+0.000844,0
+0.000848,0
+0.00085,0
+0.000852,0
+0.000856,0
+0.00086,0
+0.000864,0
+0.000868,0
+0.00087,0
+0.000872,0
+0.000876,0
+0.00088,0
+0.000884,0
+0.000888,0
+0.00089,0
+0.000892,0
+0.000896,0
+0.0009,0
+0.000904,0
+0.000908,0
+0.00091,0
+0.000912,0
+0.000916,0
+0.00092,0
+0.000924,0
+0.000928,0
+0.00093,0
+0.000932,0
+0.000936,0
+0.00094,0
+0.000944,0
+0.000948,0
+0.00095,0
+0.000952,0
+0.000956,0
+0.00096,0
+0.000964,0
+0.000968,0
+0.00097,0
+0.000972,0
+0.000976,0
+0.00098,0
+0.000984,0
+0.000988,0
+0.00099,0
+0.000992,0
+0.000996,0
+0.001,0
+0.001004,0
+0.001008,0
+0.00101,0
+0.001012,0
+0.001016,0
+0.00102,0
+0.001024,0
+0.001028,0
+0.00103,0
+0.001032,0
+0.001036,0
+0.00104,0
+0.001044,0
+0.001048,0
+0.00105,0
+0.001052,0
+0.001056,0
+0.00106,0
+0.001064,0
+0.001068,0
+0.00107,0
+0.001072,0
+0.001076,0
+0.00108,0
+0.001084,0
+0.001088,0
+0.00109,0
+0.001092,0
+0.001096,0
+0.0011,0
+0.001104,0
+0.001108,0
+0.00111,0
+0.001112,0
+0.001116,0
+0.00112,0
+0.001124,0
+0.001128,0
+0.00113,0
+0.001132,0
+0.001136,0
+0.00114,0
+0.001144,0
+0.001148,0
+0.00115,0
+0.001152,0
+0.001156,0
+0.00116,0
+0.001164,0
+0.001168,0
+0.00117,0
+0.001172,0
+0.001176,0
+0.00118,0
+0.001184,0
+0.001188,0
+0.00119,0
+0.001192,0
+0.001196,0
+0.0012,0
+0.001204,0
+0.001208,0
+0.00121,0
+0.001212,0
+0.001216,0
+0.00122,0
+0.001224,0
+0.001228,0
+0.00123,0
+0.001232,0
+0.001236,0
+0.00124,-5.24046e-009
+0.001244,-3.77543e-008
+0.001248,-9.00259e-008
+0.001248,-9.00259e-008
+0.00125,-1.19968e-007
+0.001252,-1.53341e-007
+0.001256,-2.32353e-007
+0.00126,-3.18576e-007
+0.001264,-4.21249e-007
+0.001264,-4.21249e-007
+0.001268,-5.26638e-007
+0.00127,-5.75201e-007
+0.001272,-6.22298e-007
+0.001276,-7.19383e-007
+0.001276,-7.19383e-007
+0.00128,-8.16854e-007
+0.00128,-8.16854e-007
+0.001284,-9.29663e-007
+0.001288,-1.04763e-006
+0.00129,-1.10634e-006
+0.001292,-1.16692e-006
+0.001296,-1.29934e-006
+0.001296,-1.29934e-006
+0.0013,-1.44404e-006
+0.001304,-1.60974e-006
+0.001308,-1.78533e-006
+0.00131,-1.87295e-006
+0.001312,-1.96114e-006
+0.001316,-2.14207e-006
+0.00132,-2.32296e-006
+0.001324,-2.50764e-006
+0.001328,-2.68452e-006
+0.00133,-2.76471e-006
+0.001332,-2.83991e-006
+0.001332,-2.83991e-006
+0.001336,-2.97768e-006
+0.00134,-3.08624e-006
+0.001344,-3.16731e-006
+0.001348,-3.20986e-006
+0.00135,-3.21258e-006
+0.001352,-3.20334e-006
+0.001352,-3.20334e-006
+0.001356,-3.16339e-006
+0.00136,-3.12057e-006
+0.001364,-3.10366e-006
+0.001368,-3.10755e-006
+0.00137,-3.11201e-006
+0.001372,-3.11686e-006
+0.001376,-3.12434e-006
+0.00138,-3.11717e-006
+0.001384,-3.08879e-006
+0.001388,-3.04049e-006
+0.00139,-3.01039e-006
+0.001392,-2.97824e-006
+0.001396,-2.91282e-006
+0.0014,-2.84829e-006
+0.0014,-2.84829e-006
+0.001404,-2.78783e-006
+0.001404,-2.78783e-006
+0.001408,-2.72671e-006
+0.001408,-2.72671e-006
+0.00141,-2.69378e-006
+0.001412,-2.65896e-006
+0.001416,-2.58261e-006
+0.00142,-2.49011e-006
+0.001424,-2.37841e-006
+0.001428,-2.24483e-006
+0.001428,-2.24483e-006
+0.00143,-2.16996e-006
+0.001432,-2.08952e-006
+0.001432,-2.08952e-006
+0.001436,-1.91115e-006
+0.00144,-1.7087e-006
+0.001444,-1.48196e-006
+0.001448,-1.23087e-006
+0.00145,-1.09561e-006
+0.001452,-9.5444e-007
+0.001456,-6.57226e-007
+0.00146,-3.41979e-007
+0.001464,-9.0609e-009
+0.001464,-9.0609e-009
+0.001468,3.38096e-007
+0.00147,5.1568e-007
+0.001472,6.95625e-007
+0.001476,1.06152e-006
+0.00148,1.43113e-006
+0.001484,1.79947e-006
+0.001488,2.16446e-006
+0.00149,2.34527e-006
+0.001492,2.52471e-006
+0.001496,2.87806e-006
+0.0015,3.22126e-006
+0.0015,3.22126e-006
+0.001504,3.55658e-006
+0.001508,3.87763e-006
+0.00151,4.03188e-006
+0.001512,4.18271e-006
+0.001516,4.475e-006
+0.00152,4.75031e-006
+0.001524,5.01354e-006
+0.001528,5.26068e-006
+0.001528,5.26068e-006
+0.00153,5.3764e-006
+0.001532,5.48795e-006
+0.001536,5.70304e-006
+0.00154,5.90542e-006
+0.001544,6.10096e-006
+0.001548,6.28054e-006
+0.00155,6.36144e-006
+0.001552,6.43756e-006
+0.001556,6.57904e-006
+0.00156,6.69959e-006
+0.00156,6.69959e-006
+0.001564,6.80473e-006
+0.001568,6.88582e-006
+0.00157,6.91373e-006
+0.001572,6.93374e-006
+0.001572,6.93374e-006
+0.001576,6.95256e-006
+0.00158,6.93735e-006
+0.00158,6.93735e-006
+0.001584,6.914e-006
+0.001588,6.89883e-006
+0.00159,6.89516e-006
+0.001592,6.89532e-006
+0.001596,6.90778e-006
+0.0016,6.92411e-006
+0.001604,6.94619e-006
+0.001608,6.9546e-006
+0.00161,6.94762e-006
+0.001612,6.9352e-006
+0.001616,6.90756e-006
+0.00162,6.8838e-006
+0.00162,6.8838e-006
+0.001624,6.88052e-006
+0.001624,6.88052e-006
+0.001628,6.87904e-006
+0.001628,6.87904e-006
+0.00163,6.87351e-006
+0.001632,6.86583e-006
+0.001636,6.84875e-006
+0.00164,6.8276e-006
+0.001644,6.81676e-006
+0.001648,6.80076e-006
+0.00165,6.78655e-006
+0.001652,6.77049e-006
+0.001652,6.77049e-006
+0.001656,6.74289e-006
+0.001656,6.74289e-006
+0.00166,6.70783e-006
+0.00166,6.70783e-006
+0.001664,6.6303e-006
+0.001668,6.51412e-006
+0.00167,6.44408e-006
+0.001672,6.36364e-006
+0.001672,6.36364e-006
+0.001676,6.16373e-006
+0.00168,5.91331e-006
+0.001684,5.59433e-006
+0.001688,5.2117e-006
+0.00169,4.99913e-006
+0.001692,4.76997e-006
+0.001692,4.76997e-006
+0.001696,4.25184e-006
+0.0017,3.65336e-006
+0.001704,2.95553e-006
+0.001704,2.95553e-006
+0.001708,2.16438e-006
+0.001708,2.16438e-006
+0.00171,1.73739e-006
+0.001712,1.28783e-006
+0.001712,1.28783e-006
+0.001716,3.14269e-007
+0.00172,-7.5147e-007
+0.001724,-1.91414e-006
+0.001728,-3.158e-006
+0.001728,-3.158e-006
+0.00173,-3.80476e-006
+0.001732,-4.46806e-006
+0.001732,-4.46806e-006
+0.001736,-5.84475e-006
+0.00174,-7.27495e-006
+0.00174,-7.27495e-006
+0.001744,-8.75202e-006
+0.001748,-1.0252e-005
+0.001748,-1.0252e-005
+0.00175,-1.10035e-005
+0.001752,-1.17544e-005
+0.001752,-1.17544e-005
+0.001756,-1.32484e-005
+0.00176,-1.47141e-005
+0.00176,-1.47141e-005
+0.001764,-1.61394e-005
+0.001764,-1.61394e-005
+0.001768,-1.7501e-005
+0.001768,-1.7501e-005
+0.00177,-1.81501e-005
+0.001772,-1.87763e-005
+0.001776,-1.9955e-005
+0.00178,-2.10186e-005
+0.001784,-2.19601e-005
+0.001788,-2.27628e-005
+0.001788,-2.27628e-005
+0.00179,-2.3106e-005
+0.001792,-2.34094e-005
+0.001796,-2.38968e-005
+0.0018,-2.4218e-005
+0.001804,-2.43739e-005
+0.001808,-2.43637e-005
+0.001808,-2.43637e-005
+0.00181,-2.43055e-005
+0.001812,-2.42299e-005
+0.001816,-2.40762e-005
+0.00182,-2.39651e-005
+0.001824,-2.3923e-005
+0.001824,-2.3923e-005
+0.001828,-2.3947e-005
+0.00183,-2.39764e-005
+0.001832,-2.40119e-005
+0.001832,-2.40119e-005
+0.001836,-2.40814e-005
+0.00184,-2.41161e-005
+0.001844,-2.40939e-005
+0.001848,-2.40124e-005
+0.00185,-2.39532e-005
+0.001852,-2.38845e-005
+0.001852,-2.38845e-005
+0.001856,-2.37281e-005
+0.00186,-2.35583e-005
+0.001864,-2.33848e-005
+0.001864,-2.33848e-005
+0.001868,-2.32119e-005
+0.001868,-2.32119e-005
+0.00187,-2.3127e-005
+0.001872,-2.30433e-005
+0.001876,-2.288e-005
+0.00188,-2.27245e-005
+0.001884,-2.25781e-005
+0.001888,-2.24446e-005
+0.001888,-2.24446e-005
+0.00189,-2.23843e-005
+0.001892,-2.23282e-005
+0.001892,-2.23282e-005
+0.001896,-2.22294e-005
+0.0019,-2.21539e-005
+0.001904,-2.21002e-005
+0.001904,-2.21002e-005
+0.001908,-2.20728e-005
+0.00191,-2.20699e-005
+0.001912,-2.20736e-005
+0.001916,-2.20941e-005
+0.00192,-2.21169e-005
+0.001924,-2.21199e-005
+0.001928,-2.2108e-005
+0.00193,-2.20996e-005
+0.001932,-2.2089e-005
+0.001936,-2.20597e-005
+0.00194,-2.20273e-005
+0.001944,-2.19872e-005
+0.001948,-2.19505e-005
+0.00195,-2.19368e-005
+0.001952,-2.19249e-005
+0.001956,-2.19022e-005
+0.00196,-2.18852e-005
+0.00196,-2.18852e-005
+0.001964,-2.18644e-005
+0.001968,-2.18462e-005
+0.00197,-2.18397e-005
+0.001972,-2.18326e-005
+0.001976,-2.18091e-005
+0.00198,-2.17737e-005
+0.00198,-2.17737e-005
+0.001984,-2.17118e-005
+0.001984,-2.17118e-005
+0.001988,-2.16324e-005
+0.00199,-2.15883e-005
+0.001992,-2.15397e-005
+0.001996,-2.14265e-005
+0.001996,-2.14265e-005
+0.002,-2.12985e-005
+0.002004,-2.11471e-005
+0.002004,-2.11471e-005
+0.002008,-2.09862e-005
+0.00201,-2.0907e-005
+0.002012,-2.08279e-005
+0.002016,-2.06657e-005
+0.00202,-2.05071e-005
+0.002024,-2.03492e-005
+0.002028,-2.02132e-005
+0.00203,-2.0159e-005
+0.002032,-2.01139e-005
+0.002036,-2.00504e-005
+0.00204,-2.00324e-005
+0.002044,-2.00531e-005
+0.002048,-2.01097e-005
+0.00205,-2.01434e-005
+0.002052,-2.01728e-005
+0.002056,-2.02014e-005
+0.002056,-2.02014e-005
+0.00206,-2.02053e-005
+0.00206,-2.02053e-005
+0.002064,-2.02325e-005
+0.002064,-2.02325e-005
+0.002068,-2.0298e-005
+0.002068,-2.0298e-005
+0.00207,-2.03458e-005
+0.002072,-2.04063e-005
+0.002076,-2.0573e-005
+0.002076,-2.0573e-005
+0.00208,-2.08028e-005
+0.00208,-2.08028e-005
+0.002084,-2.11114e-005
+0.002088,-2.14945e-005
+0.00209,-2.17127e-005
+0.002092,-2.19515e-005
+0.002096,-2.24998e-005
+0.0021,-2.31443e-005
+0.002104,-2.3905e-005
+0.002108,-2.47761e-005
+0.00211,-2.52491e-005
+0.002112,-2.57478e-005
+0.002116,-2.68271e-005
+0.002116,-2.68271e-005
+0.00212,-2.80084e-005
+0.00212,-2.80084e-005
+0.002124,-2.92946e-005
+0.002128,-3.06618e-005
+0.002128,-3.06618e-005
+0.00213,-3.13679e-005
+0.002132,-3.20878e-005
+0.002136,-3.35666e-005
+0.00214,-3.5078e-005
+0.002144,-3.66092e-005
+0.002148,-3.81297e-005
+0.00215,-3.88765e-005
+0.002152,-3.96122e-005
+0.002156,-4.10448e-005
+0.00216,-4.24068e-005
+0.002164,-4.36865e-005
+0.002164,-4.36865e-005
+0.002168,-4.48622e-005
+0.00217,-4.54046e-005
+0.002172,-4.59154e-005
+0.002176,-4.68415e-005
+0.00218,-4.76287e-005
+0.00218,-4.76287e-005
+0.002184,-4.8279e-005
+0.002188,-4.87852e-005
+0.002188,-4.87852e-005
+0.00219,-4.89813e-005
+0.002192,-4.91402e-005
+0.002196,-4.93519e-005
+0.0022,-4.94249e-005
+0.002204,-4.9377e-005
+0.002208,-4.92701e-005
+0.00221,-4.92226e-005
+0.002212,-4.91895e-005
+0.002216,-4.91801e-005
+0.002216,-4.91801e-005
+0.00222,-4.92444e-005
+0.002224,-4.9364e-005
+0.002228,-4.95057e-005
+0.00223,-4.95742e-005
+0.002232,-4.96369e-005
+0.002232,-4.96369e-005
+0.002236,-4.97339e-005
+0.00224,-4.97724e-005
+0.002244,-4.97403e-005
+0.002248,-4.96517e-005
+0.002248,-4.96517e-005
+0.00225,-4.95967e-005
+0.002252,-4.954e-005
+0.002256,-4.94319e-005
+0.00226,-4.93389e-005
+0.002264,-4.92653e-005
+0.002264,-4.92653e-005
+0.002268,-4.92097e-005
+0.00227,-4.91872e-005
+0.002272,-4.91668e-005
+0.002276,-4.9128e-005
+0.00228,-4.90883e-005
+0.002284,-4.90378e-005
+0.002288,-4.8973e-005
+0.00229,-4.89352e-005
+0.002292,-4.88933e-005
+0.002292,-4.88933e-005
+0.002296,-4.87959e-005
+0.0023,-4.86836e-005
+0.002304,-4.85581e-005
+0.002304,-4.85581e-005
+0.002308,-4.84273e-005
+0.00231,-4.83627e-005
+0.002312,-4.82986e-005
+0.002316,-4.81715e-005
+0.002316,-4.81715e-005
+0.00232,-4.80538e-005
+0.002324,-4.7945e-005
+0.002328,-4.78532e-005
+0.00233,-4.78166e-005
+0.002332,-4.77854e-005
+0.002336,-4.77356e-005
+0.00234,-4.77051e-005
+0.002344,-4.7687e-005
+0.002348,-4.76879e-005
+0.00235,-4.76963e-005
+0.002352,-4.77059e-005
+0.002352,-4.77059e-005
+0.002356,-4.77149e-005
+0.002356,-4.77149e-005
+0.00236,-4.77038e-005
+0.00236,-4.77038e-005
+0.002364,-4.76609e-005
+0.002368,-4.75934e-005
+0.002368,-4.75934e-005
+0.00237,-4.75522e-005
+0.002372,-4.75046e-005
+0.002376,-4.73873e-005
+0.00238,-4.72465e-005
+0.002384,-4.7073e-005
+0.002388,-4.68789e-005
+0.00239,-4.67785e-005
+0.002392,-4.66755e-005
+0.002392,-4.66755e-005
+0.002396,-4.64595e-005
+0.0024,-4.62359e-005
+0.0024,-4.62359e-005
+0.002404,-4.59978e-005
+0.002408,-4.57624e-005
+0.00241,-4.56508e-005
+0.002412,-4.55424e-005
+0.002416,-4.5331e-005
+0.00242,-4.51354e-005
+0.00242,-4.51354e-005
+0.002424,-4.49457e-005
+0.002424,-4.49457e-005
+0.002428,-4.47808e-005
+0.002428,-4.47808e-005
+0.00243,-4.47146e-005
+0.002432,-4.46588e-005
+0.002432,-4.46588e-005
+0.002436,-4.45748e-005
+0.00244,-4.45355e-005
+0.00244,-4.45355e-005
+0.002444,-4.45338e-005
+0.002448,-4.45786e-005
+0.00245,-4.4611e-005
+0.002452,-4.46407e-005
+0.002452,-4.46407e-005
+0.002456,-4.46696e-005
+0.002456,-4.46696e-005
+0.00246,-4.46706e-005
+0.002464,-4.46928e-005
+0.002464,-4.46928e-005
+0.002468,-4.47482e-005
+0.00247,-4.47884e-005
+0.002472,-4.48398e-005
+0.002476,-4.49836e-005
+0.00248,-4.51782e-005
+0.002484,-4.54404e-005
+0.002488,-4.57661e-005
+0.00249,-4.59509e-005
+0.002492,-4.61535e-005
+0.002492,-4.61535e-005
+0.002496,-4.6624e-005
+0.0025,-4.71862e-005
+0.002504,-4.78631e-005
+0.002508,-4.8653e-005
+0.002508,-4.8653e-005
+0.00251,-4.90884e-005
+0.002512,-4.95527e-005
+0.002516,-5.05726e-005
+0.00252,-5.17072e-005
+0.002524,-5.29613e-005
+0.002528,-5.4314e-005
+0.00253,-5.5021e-005
+0.002532,-5.57473e-005
+0.002532,-5.57473e-005
+0.002536,-5.72536e-005
+0.00254,-5.88123e-005
+0.002544,-6.04097e-005
+0.002548,-6.20141e-005
+0.00255,-6.28089e-005
+0.002552,-6.35965e-005
+0.002556,-6.51445e-005
+0.00256,-6.66326e-005
+0.00256,-6.66326e-005
+0.002564,-6.80468e-005
+0.002564,-6.80468e-005
+0.002568,-6.93592e-005
+0.00257,-6.99689e-005
+0.002572,-7.05462e-005
+0.002576,-7.16001e-005
+0.00258,-7.25077e-005
+0.00258,-7.25077e-005
+0.002584,-7.32649e-005
+0.002584,-7.32649e-005
+0.002588,-7.38616e-005
+0.00259,-7.40972e-005
+0.002592,-7.42915e-005
+0.002596,-7.45606e-005
+0.002596,-7.45606e-005
+0.0026,-7.46697e-005
+0.002604,-7.46342e-005
+0.002608,-7.45138e-005
+0.002608,-7.45138e-005
+0.00261,-7.44526e-005
+0.002612,-7.44031e-005
+0.002616,-7.4359e-005
+0.002616,-7.4359e-005
+0.00262,-7.4396e-005
+0.002624,-7.45015e-005
+0.002628,-7.464e-005
+0.002628,-7.464e-005
+0.00263,-7.47098e-005
+0.002632,-7.47752e-005
+0.002636,-7.48816e-005
+0.00264,-7.49358e-005
+0.00264,-7.49358e-005
+0.002644,-7.49213e-005
+0.002648,-7.48436e-005
+0.00265,-7.47896e-005
+0.002652,-7.47316e-005
+0.002652,-7.47316e-005
+0.002656,-7.46183e-005
+0.002656,-7.46183e-005
+0.00266,-7.45199e-005
+0.00266,-7.45199e-005
+0.002664,-7.44445e-005
+0.002668,-7.4395e-005
+0.00267,-7.43779e-005
+0.002672,-7.4364e-005
+0.002676,-7.43412e-005
+0.00268,-7.43181e-005
+0.002684,-7.42863e-005
+0.002688,-7.42418e-005
+0.00269,-7.42144e-005
+0.002692,-7.41828e-005
+0.002696,-7.41059e-005
+0.0027,-7.40134e-005
+0.002704,-7.39062e-005
+0.002704,-7.39062e-005
+0.002708,-7.37898e-005
+0.00271,-7.3732e-005
+0.002712,-7.36745e-005
+0.002712,-7.36745e-005
+0.002716,-7.356e-005
+0.00272,-7.34518e-005
+0.002724,-7.33491e-005
+0.002728,-7.32607e-005
+0.00273,-7.3225e-005
+0.002732,-7.31947e-005
+0.002736,-7.31494e-005
+0.00274,-7.31291e-005
+0.00274,-7.31291e-005
+0.002744,-7.3125e-005
+0.002744,-7.3125e-005
+0.002748,-7.31406e-005
+0.00275,-7.31534e-005
+0.002752,-7.31644e-005
+0.002756,-7.31679e-005
+0.00276,-7.3144e-005
+0.002764,-7.30834e-005
+0.002768,-7.29945e-005
+0.00277,-7.29442e-005
+0.002772,-7.28894e-005
+0.002776,-7.27625e-005
+0.00278,-7.26203e-005
+0.002784,-7.24552e-005
+0.002788,-7.22801e-005
+0.00279,-7.21933e-005
+0.002792,-7.21066e-005
+0.002796,-7.19314e-005
+0.0028,-7.17606e-005
+0.0028,-7.17606e-005
+0.002804,-7.15826e-005
+0.002804,-7.15826e-005
+0.002808,-7.14097e-005
+0.002808,-7.14097e-005
+0.00281,-7.13305e-005
+0.002812,-7.1255e-005
+0.002812,-7.1255e-005
+0.002816,-7.11104e-005
+0.002816,-7.11104e-005
+0.00282,-7.09811e-005
+0.00282,-7.09811e-005
+0.002824,-7.08578e-005
+0.002828,-7.07563e-005
+0.00283,-7.07179e-005
+0.002832,-7.06868e-005
+0.002836,-7.06437e-005
+0.00284,-7.0633e-005
+0.00284,-7.0633e-005
+0.002844,-7.06454e-005
+0.002848,-7.06833e-005
+0.00285,-7.07066e-005
+0.002852,-7.07258e-005
+0.002852,-7.07258e-005
+0.002856,-7.07366e-005
+0.002856,-7.07366e-005
+0.00286,-7.07298e-005
+0.00286,-7.07298e-005
+0.002864,-7.07564e-005
+0.002868,-7.08229e-005
+0.00287,-7.08687e-005
+0.002872,-7.09244e-005
+0.002872,-7.09244e-005
+0.002876,-7.10711e-005
+0.002876,-7.10711e-005
+0.00288,-7.12597e-005
+0.002884,-7.15066e-005
+0.002888,-7.18067e-005
+0.00289,-7.1977e-005
+0.002892,-7.21644e-005
+0.002896,-7.26015e-005
+0.0029,-7.3128e-005
+0.002904,-7.37656e-005
+0.002908,-7.45124e-005
+0.00291,-7.49251e-005
+0.002912,-7.53655e-005
+0.002912,-7.53655e-005
+0.002916,-7.63342e-005
+0.002916,-7.63342e-005
+0.00292,-7.7416e-005
+0.00292,-7.7416e-005
+0.002924,-7.86178e-005
+0.002928,-7.99195e-005
+0.00293,-8.06019e-005
+0.002932,-8.13043e-005
+0.002936,-8.27649e-005
+0.00294,-8.4279e-005
+0.002944,-8.58369e-005
+0.002948,-8.74105e-005
+0.00295,-8.81924e-005
+0.002952,-8.89681e-005
+0.002956,-9.0495e-005
+0.00296,-9.19696e-005
+0.002964,-9.33739e-005
+0.002968,-9.46815e-005
+0.002968,-9.46815e-005
+0.00297,-9.5291e-005
+0.002972,-9.58691e-005
+0.002976,-9.69275e-005
+0.00298,-9.78409e-005
+0.00298,-9.78409e-005
+0.002984,-9.86068e-005
+0.002988,-9.92151e-005
+0.00299,-9.94574e-005
+0.002992,-9.96584e-005
+0.002996,-9.99397e-005
+0.003,-0.000100062
+0.003004,-0.000100038
+0.003008,-9.99223e-005
+0.00301,-9.98602e-005
+0.003012,-9.98086e-005
+0.003016,-9.97584e-005
+0.00302,-9.97891e-005
+0.003024,-9.98901e-005
+0.003028,-0.000100027
+0.003028,-0.000100027
+0.00303,-0.000100097
+0.003032,-0.000100163
+0.003036,-0.00010027
+0.003036,-0.00010027
+0.00304,-0.000100327
+0.003044,-0.000100321
+0.003044,-0.000100321
+0.003048,-0.000100251
+0.00305,-0.000100198
+0.003052,-0.000100141
+0.003056,-0.000100024
+0.00306,-9.99209e-005
+0.00306,-9.99209e-005
+0.003064,-9.98438e-005
+0.003068,-9.9791e-005
+0.00307,-9.97723e-005
+0.003072,-9.97572e-005
+0.003076,-9.97329e-005
+0.00308,-9.97094e-005
+0.00308,-9.97094e-005
+0.003084,-9.96777e-005
+0.003088,-9.96334e-005
+0.003088,-9.96334e-005
+0.00309,-9.96059e-005
+0.003092,-9.9574e-005
+0.003096,-9.94956e-005
+0.003096,-9.94956e-005
+0.0031,-9.93992e-005
+0.0031,-9.93992e-005
+0.003104,-9.92838e-005
+0.003108,-9.916e-005
+0.00311,-9.90981e-005
+0.003112,-9.9036e-005
+0.003116,-9.89107e-005
+0.00312,-9.87903e-005
+0.003124,-9.8677e-005
+0.003128,-9.858e-005
+0.00313,-9.85407e-005
+0.003132,-9.85069e-005
+0.003136,-9.8453e-005
+0.00314,-9.84228e-005
+0.003144,-9.84098e-005
+0.003148,-9.84175e-005
+0.00315,-9.84284e-005
+0.003152,-9.84389e-005
+0.003156,-9.84446e-005
+0.00316,-9.84283e-005
+0.003164,-9.83811e-005
+0.003168,-9.83121e-005
+0.00317,-9.82728e-005
+0.003172,-9.82289e-005
+0.003176,-9.81222e-005
+0.00318,-9.79949e-005
+0.003184,-9.78405e-005
+0.003188,-9.76728e-005
+0.00319,-9.75892e-005
+0.003192,-9.75049e-005
+0.003192,-9.75049e-005
+0.003196,-9.73287e-005
+0.0032,-9.71505e-005
+0.003204,-9.69652e-005
+0.003204,-9.69652e-005
+0.003208,-9.67863e-005
+0.003208,-9.67863e-005
+0.00321,-9.67037e-005
+0.003212,-9.66244e-005
+0.003212,-9.66244e-005
+0.003216,-9.6471e-005
+0.00322,-9.63324e-005
+0.00322,-9.63324e-005
+0.003224,-9.61989e-005
+0.003228,-9.60845e-005
+0.003228,-9.60845e-005
+0.00323,-9.60396e-005
+0.003232,-9.60019e-005
+0.003236,-9.59448e-005
+0.003236,-9.59448e-005
+0.00324,-9.59216e-005
+0.00324,-9.59216e-005
+0.003244,-9.59251e-005
+0.003244,-9.59251e-005
+0.003248,-9.59633e-005
+0.00325,-9.59899e-005
+0.003252,-9.60129e-005
+0.003256,-9.60291e-005
+0.003256,-9.60291e-005
+0.00326,-9.60244e-005
+0.00326,-9.60244e-005
+0.003264,-9.60479e-005
+0.003264,-9.60479e-005
+0.003268,-9.61103e-005
+0.003268,-9.61103e-005
+0.00327,-9.61545e-005
+0.003272,-9.62091e-005
+0.003272,-9.62091e-005
+0.003276,-9.63556e-005
+0.003276,-9.63556e-005
+0.00328,-9.65485e-005
+0.003284,-9.68011e-005
+0.003288,-9.71066e-005
+0.00329,-9.72784e-005
+0.003292,-9.74666e-005
+0.003296,-9.79047e-005
+0.0033,-9.84302e-005
+0.0033,-9.84302e-005
+0.003304,-9.90673e-005
+0.003304,-9.90673e-005
+0.003308,-9.98146e-005
+0.00331,-0.000100227
+0.003312,-0.000100668
+0.003316,-0.000101641
+0.00332,-0.00010273
+0.003324,-0.00010394
+0.003328,-0.000105255
+0.00333,-0.000105945
+0.003332,-0.000106655
+0.003332,-0.000106655
+0.003336,-0.000108133
+0.00334,-0.000109671
+0.003344,-0.000111258
+0.003348,-0.000112863
+0.00335,-0.000113663
+0.003352,-0.000114458
+0.003356,-0.000116027
+0.00336,-0.000117543
+0.003364,-0.000118989
+0.003368,-0.000120337
+0.00337,-0.000120966
+0.003372,-0.000121564
+0.003372,-0.000121564
+0.003376,-0.00012266
+0.003376,-0.00012266
+0.00338,-0.000123608
+0.003384,-0.000124405
+0.003384,-0.000124405
+0.003388,-0.000125041
+0.00339,-0.000125295
+0.003392,-0.000125507
+0.003396,-0.000125807
+0.0034,-0.000125943
+0.003404,-0.000125927
+0.003408,-0.00012581
+0.00341,-0.000125745
+0.003412,-0.000125689
+0.003412,-0.000125689
+0.003416,-0.000125628
+0.00342,-0.000125649
+0.003424,-0.000125744
+0.003428,-0.000125879
+0.003428,-0.000125879
+0.00343,-0.000125949
+0.003432,-0.000126015
+0.003436,-0.000126127
+0.00344,-0.000126189
+0.003444,-0.000126187
+0.003448,-0.000126115
+0.00345,-0.000126062
+0.003452,-0.000126003
+0.003452,-0.000126003
+0.003456,-0.000125883
+0.003456,-0.000125883
+0.00346,-0.000125781
+0.003464,-0.000125701
+0.003464,-0.000125701
+0.003468,-0.000125646
+0.00347,-0.000125627
+0.003472,-0.000125611
+0.003476,-0.000125588
+0.00348,-0.000125567
+0.003484,-0.000125539
+0.003488,-0.0001255
+0.00349,-0.000125476
+0.003492,-0.000125448
+0.003492,-0.000125448
+0.003496,-0.000125378
+0.0035,-0.00012529
+0.0035,-0.00012529
+0.003504,-0.000125188
+0.003508,-0.000125077
+0.00351,-0.000125021
+0.003512,-0.000124966
+0.003516,-0.000124853
+0.00352,-0.000124745
+0.003524,-0.000124639
+0.003528,-0.000124547
+0.00353,-0.00012451
+0.003532,-0.000124478
+0.003536,-0.000124429
+0.00354,-0.000124405
+0.00354,-0.000124405
+0.003544,-0.000124396
+0.003548,-0.000124407
+0.003548,-0.000124407
+0.00355,-0.00012442
+0.003552,-0.000124432
+0.003556,-0.000124439
+0.00356,-0.000124421
+0.003564,-0.000124368
+0.003568,-0.000124287
+0.00357,-0.00012424
+0.003572,-0.00012419
+0.003576,-0.000124075
+0.00358,-0.000123945
+0.003584,-0.000123795
+0.003588,-0.000123634
+0.00359,-0.000123553
+0.003592,-0.000123472
+0.003592,-0.000123472
+0.003596,-0.000123307
+0.0036,-0.000123143
+0.003604,-0.000122973
+0.003608,-0.000122809
+0.003608,-0.000122809
+0.00361,-0.000122733
+0.003612,-0.000122659
+0.003612,-0.000122659
+0.003616,-0.000122516
+0.00362,-0.000122383
+0.00362,-0.000122383
+0.003624,-0.00012225
+0.003628,-0.000122135
+0.003628,-0.000122135
+0.00363,-0.000122089
+0.003632,-0.00012205
+0.003636,-0.000121989
+0.00364,-0.00012196
+0.003644,-0.000121957
+0.003648,-0.000121991
+0.00365,-0.000122018
+0.003652,-0.000122043
+0.003656,-0.000122067
+0.00366,-0.000122068
+0.00366,-0.000122068
+0.003664,-0.000122093
+0.003668,-0.000122153
+0.003668,-0.000122153
+0.00367,-0.000122194
+0.003672,-0.000122246
+0.003676,-0.000122386
+0.003676,-0.000122386
+0.00368,-0.000122571
+0.00368,-0.000122571
+0.003684,-0.000122817
+0.003688,-0.000123121
+0.00369,-0.000123293
+0.003692,-0.000123481
+0.003692,-0.000123481
+0.003696,-0.00012392
+0.0037,-0.000124445
+0.003704,-0.000125082
+0.003708,-0.000125826
+0.003708,-0.000125826
+0.00371,-0.000126237
+0.003712,-0.000126678
+0.003716,-0.000127649
+0.003716,-0.000127649
+0.00372,-0.000128737
+0.00372,-0.000128737
+0.003724,-0.000129946
+0.003728,-0.000131257
+0.00373,-0.000131943
+0.003732,-0.000132649
+0.003732,-0.000132649
+0.003736,-0.000134118
+0.00374,-0.000135643
+0.003744,-0.000137216
+0.003748,-0.000138808
+0.00375,-0.0001396
+0.003752,-0.000140388
+0.003756,-0.00014194
+0.00376,-0.000143438
+0.003764,-0.000144864
+0.003768,-0.000146192
+0.003768,-0.000146192
+0.00377,-0.00014681
+0.003772,-0.000147395
+0.003776,-0.000148463
+0.003776,-0.000148463
+0.00378,-0.000149383
+0.003784,-0.000150149
+0.003784,-0.000150149
+0.003788,-0.000150752
+0.00379,-0.00015099
+0.003792,-0.000151188
+0.003796,-0.000151463
+0.0038,-0.000151578
+0.003804,-0.000151546
+0.003808,-0.000151423
+0.00381,-0.00015136
+0.003812,-0.000151309
+0.003816,-0.000151262
+0.00382,-0.000151297
+0.003824,-0.000151403
+0.003828,-0.000151543
+0.00383,-0.000151614
+0.003832,-0.000151681
+0.003832,-0.000151681
+0.003836,-0.000151786
+0.003836,-0.000151786
+0.00384,-0.000151837
+0.003844,-0.00015182
+0.003844,-0.00015182
+0.003848,-0.000151739
+0.00385,-0.000151685
+0.003852,-0.000151628
+0.003856,-0.000151516
+0.003856,-0.000151516
+0.00386,-0.000151423
+0.00386,-0.000151423
+0.003864,-0.000151356
+0.003868,-0.000151311
+0.003868,-0.000151311
+0.00387,-0.000151296
+0.003872,-0.000151284
+0.003876,-0.000151265
+0.00388,-0.000151245
+0.003884,-0.000151214
+0.003888,-0.000151168
+0.00389,-0.000151139
+0.003892,-0.000151104
+0.003896,-0.00015102
+0.003896,-0.00015102
+0.0039,-0.000150921
+0.0039,-0.000150921
+0.003904,-0.000150807
+0.003908,-0.000150688
+0.00391,-0.000150628
+0.003912,-0.000150568
+0.003916,-0.000150449
+0.003916,-0.000150449
+0.00392,-0.00015034
+0.003924,-0.000150237
+0.003928,-0.000150149
+0.00393,-0.000150113
+0.003932,-0.000150082
+0.003936,-0.000150035
+0.00394,-0.000150009
+0.003944,-0.000149998
+0.003944,-0.000149998
+0.003948,-0.000150007
+0.003948,-0.000150007
+0.00395,-0.000150019
+0.003952,-0.000150031
+0.003956,-0.000150039
+0.00396,-0.000150022
+0.003964,-0.00014997
+0.003968,-0.000149894
+0.00397,-0.000149848
+0.003972,-0.000149798
+0.003976,-0.000149677
+0.00398,-0.000149536
+0.003984,-0.000149371
+0.003988,-0.000149194
+0.00399,-0.000149107
+0.003992,-0.000149021
+0.003996,-0.000148847
+0.003996,-0.000148847
+0.004,-0.000148677
+0.004,-0.000148677
+0.004004,-0.000148503
+0.004004,-0.000148503
+0.004008,-0.000148338
+0.004008,-0.000148338
+0.00401,-0.000148263
+0.004012,-0.000148191
+0.004012,-0.000148191
+0.004016,-0.000148053
+0.00402,-0.000147927
+0.00402,-0.000147927
+0.004024,-0.000147805
+0.004028,-0.000147705
+0.004028,-0.000147705
+0.00403,-0.000147667
+0.004032,-0.000147637
+0.004036,-0.000147594
+0.00404,-0.000147584
+0.00404,-0.000147584
+0.004044,-0.000147596
+0.004048,-0.000147634
+0.00405,-0.000147657
+0.004052,-0.000147676
+0.004056,-0.000147686
+0.004056,-0.000147686
+0.00406,-0.000147679
+0.00406,-0.000147679
+0.004064,-0.000147702
+0.004064,-0.000147702
+0.004068,-0.000147766
+0.00407,-0.000147812
+0.004072,-0.000147867
+0.004072,-0.000147867
+0.004076,-0.000148011
+0.004076,-0.000148011
+0.00408,-0.000148197
+0.004084,-0.000148442
+0.004088,-0.00014874
+0.00409,-0.00014891
+0.004092,-0.000149096
+0.004096,-0.000149529
+0.0041,-0.000150049
+0.004104,-0.000150679
+0.004104,-0.000150679
+0.004108,-0.000151418
+0.00411,-0.000151827
+0.004112,-0.000152264
+0.004112,-0.000152264
+0.004116,-0.000153226
+0.00412,-0.000154302
+0.00412,-0.000154302
+0.004124,-0.000155496
+0.004128,-0.000156791
+0.00413,-0.000157469
+0.004132,-0.000158168
+0.004136,-0.000159623
+0.00414,-0.000161138
+0.004144,-0.0001627
+0.004148,-0.000164278
+0.00415,-0.000165063
+0.004152,-0.000165843
+0.004156,-0.00016738
+0.00416,-0.000168865
+0.004164,-0.000170283
+0.004164,-0.000170283
+0.004168,-0.000171607
+0.004168,-0.000171607
+0.00417,-0.000172226
+0.004172,-0.000172814
+0.004176,-0.000173894
+0.004176,-0.000173894
+0.00418,-0.000174831
+0.00418,-0.000174831
+0.004184,-0.000175621
+0.004188,-0.00017625
+0.00419,-0.000176501
+0.004192,-0.000176711
+0.004192,-0.000176711
+0.004196,-0.00017701
+0.0042,-0.000177152
+0.004204,-0.000177147
+0.004208,-0.000177034
+0.004208,-0.000177034
+0.00421,-0.000176969
+0.004212,-0.000176913
+0.004216,-0.000176853
+0.004216,-0.000176853
+0.00422,-0.000176874
+0.004224,-0.000176969
+0.004228,-0.000177105
+0.00423,-0.000177175
+0.004232,-0.000177243
+0.004236,-0.000177357
+0.00424,-0.00017742
+0.00424,-0.00017742
+0.004244,-0.000177419
+0.004248,-0.000177352
+0.00425,-0.0001773
+0.004252,-0.000177243
+0.004256,-0.000177124
+0.00426,-0.000177018
+0.00426,-0.000177018
+0.004264,-0.000176935
+0.004264,-0.000176935
+0.004268,-0.00017688
+0.00427,-0.000176861
+0.004272,-0.000176846
+0.004272,-0.000176846
+0.004276,-0.000176827
+0.00428,-0.000176809
+0.00428,-0.000176809
+0.004284,-0.000176783
+0.004288,-0.000176743
+0.004288,-0.000176743
+0.00429,-0.000176718
+0.004292,-0.000176688
+0.004296,-0.000176611
+0.004296,-0.000176611
+0.0043,-0.000176516
+0.004304,-0.0001764
+0.004308,-0.00017627
+0.004308,-0.00017627
+0.00431,-0.000176204
+0.004312,-0.000176137
+0.004312,-0.000176137
+0.004316,-0.000176003
+0.00432,-0.000175874
+0.004324,-0.00017575
+0.004328,-0.000175641
+0.00433,-0.000175595
+0.004332,-0.000175555
+0.004336,-0.00017549
+0.00434,-0.00017545
+0.004344,-0.000175428
+0.004348,-0.00017543
+0.00435,-0.000175442
+0.004352,-0.000175454
+0.004356,-0.000175467
+0.00436,-0.00017546
+0.004364,-0.00017542
+0.004368,-0.000175351
+0.00437,-0.000175311
+0.004372,-0.000175266
+0.004372,-0.000175266
+0.004376,-0.000175159
+0.00438,-0.000175033
+0.00438,-0.000175033
+0.004384,-0.00017488
+0.004388,-0.000174712
+0.00439,-0.000174629
+0.004392,-0.000174545
+0.004396,-0.000174373
+0.0044,-0.000174198
+0.0044,-0.000174198
+0.004404,-0.000174014
+0.004404,-0.000174014
+0.004408,-0.000173836
+0.004408,-0.000173836
+0.00441,-0.000173754
+0.004412,-0.000173676
+0.004412,-0.000173676
+0.004416,-0.000173525
+0.004416,-0.000173525
+0.00442,-0.000173389
+0.00442,-0.000173389
+0.004424,-0.00017326
+0.004424,-0.00017326
+0.004428,-0.000173153
+0.00443,-0.000173113
+0.004432,-0.00017308
+0.004436,-0.000173034
+0.004436,-0.000173034
+0.00444,-0.000173021
+0.00444,-0.000173021
+0.004444,-0.000173033
+0.004448,-0.000173072
+0.00445,-0.000173096
+0.004452,-0.000173116
+0.004456,-0.000173127
+0.004456,-0.000173127
+0.00446,-0.000173119
+0.00446,-0.000173119
+0.004464,-0.000173144
+0.004468,-0.000173208
+0.004468,-0.000173208
+0.00447,-0.000173252
+0.004472,-0.000173307
+0.004476,-0.000173453
+0.004476,-0.000173453
+0.00448,-0.000173643
+0.004484,-0.000173892
+0.004488,-0.000174195
+0.00449,-0.000174365
+0.004492,-0.000174551
+0.004496,-0.000174982
+0.0045,-0.000175498
+0.004504,-0.000176124
+0.004504,-0.000176124
+0.004508,-0.000176857
+0.004508,-0.000176857
+0.00451,-0.000177263
+0.004512,-0.000177698
+0.004512,-0.000177698
+0.004516,-0.000178657
+0.00452,-0.000179734
+0.00452,-0.000179734
+0.004524,-0.000180929
+0.004528,-0.000182228
+0.00453,-0.000182909
+0.004532,-0.00018361
+0.004532,-0.00018361
+0.004536,-0.000185068
+0.00454,-0.000186583
+0.00454,-0.000186583
+0.004544,-0.000188143
+0.004548,-0.00018972
+0.00455,-0.000190505
+0.004552,-0.000191285
+0.004556,-0.000192824
+0.00456,-0.000194314
+0.004564,-0.000195736
+0.004568,-0.000197063
+0.00457,-0.000197683
+0.004572,-0.000198272
+0.004572,-0.000198272
+0.004576,-0.000199353
+0.00458,-0.000200289
+0.00458,-0.000200289
+0.004584,-0.000201077
+0.004584,-0.000201077
+0.004588,-0.000201707
+0.00459,-0.00020196
+0.004592,-0.000202171
+0.004596,-0.00020247
+0.0046,-0.000202607
+0.004604,-0.000202594
+0.004608,-0.000202477
+0.004608,-0.000202477
+0.00461,-0.000202411
+0.004612,-0.000202355
+0.004616,-0.000202295
+0.004616,-0.000202295
+0.00462,-0.000202317
+0.004624,-0.000202413
+0.004628,-0.000202548
+0.00463,-0.000202618
+0.004632,-0.000202685
+0.004632,-0.000202685
+0.004636,-0.000202795
+0.00464,-0.000202853
+0.004644,-0.000202843
+0.004648,-0.000202767
+0.00465,-0.000202714
+0.004652,-0.000202657
+0.004656,-0.000202543
+0.00466,-0.000202442
+0.004664,-0.000202364
+0.004668,-0.00020231
+0.00467,-0.000202292
+0.004672,-0.000202278
+0.004676,-0.000202257
+0.00468,-0.00020224
+0.00468,-0.00020224
+0.004684,-0.000202214
+0.004688,-0.000202175
+0.00469,-0.00020215
+0.004692,-0.000202119
+0.004692,-0.000202119
+0.004696,-0.000202044
+0.0047,-0.000201949
+0.004704,-0.000201838
+0.004708,-0.000201719
+0.00471,-0.000201659
+0.004712,-0.000201599
+0.004716,-0.000201478
+0.00472,-0.00020136
+0.004724,-0.000201248
+0.004728,-0.000201151
+0.00473,-0.000201112
+0.004732,-0.000201079
+0.004736,-0.000201026
+0.00474,-0.000200996
+0.004744,-0.000200983
+0.004744,-0.000200983
+0.004748,-0.000200991
+0.004748,-0.000200991
+0.00475,-0.000201003
+0.004752,-0.000201014
+0.004752,-0.000201014
+0.004756,-0.000201023
+0.004756,-0.000201023
+0.00476,-0.000201008
+0.00476,-0.000201008
+0.004764,-0.000200958
+0.004768,-0.000200883
+0.00477,-0.00020084
+0.004772,-0.000200792
+0.004776,-0.000200677
+0.00478,-0.000200544
+0.00478,-0.000200544
+0.004784,-0.000200386
+0.004788,-0.000200219
+0.00479,-0.000200136
+0.004792,-0.000200053
+0.004796,-0.000199879
+0.0048,-0.000199704
+0.004804,-0.000199523
+0.004804,-0.000199523
+0.004808,-0.000199349
+0.00481,-0.000199269
+0.004812,-0.000199193
+0.004812,-0.000199193
+0.004816,-0.000199045
+0.00482,-0.000198908
+0.004824,-0.000198778
+0.004828,-0.000198669
+0.00483,-0.000198629
+0.004832,-0.000198597
+0.004836,-0.000198553
+0.004836,-0.000198553
+0.00484,-0.000198546
+0.00484,-0.000198546
+0.004844,-0.000198561
+0.004848,-0.000198599
+0.00485,-0.000198621
+0.004852,-0.000198639
+0.004852,-0.000198639
+0.004856,-0.000198646
+0.004856,-0.000198646
+0.00486,-0.000198637
+0.00486,-0.000198637
+0.004864,-0.00019866
+0.004864,-0.00019866
+0.004868,-0.000198726
+0.004868,-0.000198726
+0.00487,-0.000198773
+0.004872,-0.00019883
+0.004872,-0.00019883
+0.004876,-0.000198979
+0.004876,-0.000198979
+0.00488,-0.00019917
+0.00488,-0.00019917
+0.004884,-0.00019942
+0.004888,-0.000199724
+0.00489,-0.000199896
+0.004892,-0.000200085
+0.004896,-0.000200524
+0.0049,-0.000201051
+0.004904,-0.000201687
+0.004908,-0.000202431
+0.00491,-0.000202843
+0.004912,-0.000203282
+0.004916,-0.000204251
+0.00492,-0.000205333
+0.00492,-0.000205333
+0.004924,-0.000206535
+0.004928,-0.000207837
+0.00493,-0.000208518
+0.004932,-0.000209219
+0.004936,-0.000210674
+0.00494,-0.000212187
+0.004944,-0.000213746
+0.004948,-0.000215323
+0.00495,-0.000216107
+0.004952,-0.000216885
+0.004956,-0.000218419
+0.00496,-0.000219903
+0.004964,-0.000221319
+0.004964,-0.000221319
+0.004968,-0.000222639
+0.004968,-0.000222639
+0.00497,-0.000223256
+0.004972,-0.000223841
+0.004976,-0.000224915
+0.004976,-0.000224915
+0.00498,-0.000225845
+0.004984,-0.000226627
+0.004988,-0.000227251
+0.00499,-0.0002275
+0.004992,-0.000227708
+0.004996,-0.000228003
+0.005,-0.000228138
+0.005004,-0.000228125
+0.005008,-0.000228008
+0.005008,-0.000228008
+0.00501,-0.000227943
+0.005012,-0.000227888
+0.005016,-0.00022783
+0.00502,-0.000227855
+0.005024,-0.000227952
+0.005028,-0.000228088
+0.00503,-0.000228158
+0.005032,-0.000228225
+0.005032,-0.000228225
+0.005036,-0.000228333
+0.00504,-0.000228388
+0.00504,-0.000228388
+0.005044,-0.000228377
+0.005048,-0.000228304
+0.00505,-0.000228252
+0.005052,-0.000228195
+0.005052,-0.000228195
+0.005056,-0.000228084
+0.00506,-0.000227987
+0.00506,-0.000227987
+0.005064,-0.000227912
+0.005064,-0.000227912
+0.005068,-0.000227859
+0.00507,-0.00022784
+0.005072,-0.000227824
+0.005076,-0.000227803
+0.00508,-0.000227785
+0.005084,-0.000227759
+0.005088,-0.000227722
+0.00509,-0.000227698
+0.005092,-0.000227668
+0.005096,-0.00022759
+0.0051,-0.000227492
+0.005104,-0.000227377
+0.005108,-0.000227254
+0.00511,-0.000227193
+0.005112,-0.000227131
+0.005116,-0.000227007
+0.00512,-0.000226888
+0.005124,-0.000226773
+0.005128,-0.000226675
+0.00513,-0.000226634
+0.005132,-0.000226599
+0.005136,-0.000226541
+0.00514,-0.000226506
+0.005144,-0.000226486
+0.005148,-0.000226488
+0.00515,-0.000226498
+0.005152,-0.000226509
+0.005152,-0.000226509
+0.005156,-0.00022652
+0.005156,-0.00022652
+0.00516,-0.00022651
+0.00516,-0.00022651
+0.005164,-0.000226469
+0.005168,-0.000226402
+0.00517,-0.000226364
+0.005172,-0.000226321
+0.005176,-0.000226216
+0.00518,-0.000226094
+0.005184,-0.000225947
+0.005188,-0.000225787
+0.00519,-0.000225707
+0.005192,-0.000225626
+0.005196,-0.000225458
+0.0052,-0.000225286
+0.0052,-0.000225286
+0.005204,-0.000225103
+0.005208,-0.000224924
+0.005208,-0.000224924
+0.00521,-0.00022484
+0.005212,-0.000224758
+0.005212,-0.000224758
+0.005216,-0.000224599
+0.005216,-0.000224599
+0.00522,-0.000224455
+0.00522,-0.000224455
+0.005224,-0.000224316
+0.005228,-0.000224197
+0.00523,-0.00022415
+0.005232,-0.000224111
+0.005236,-0.000224055
+0.00524,-0.000224035
+0.00524,-0.000224035
+0.005244,-0.000224042
+0.005248,-0.000224083
+0.00525,-0.00022411
+0.005252,-0.000224132
+0.005252,-0.000224132
+0.005256,-0.000224149
+0.005256,-0.000224149
+0.00526,-0.00022414
+0.005264,-0.000224129
+0.005268,-0.00022414
+0.00527,-0.00022416
+0.005272,-0.00022419
+0.005272,-0.00022419
+0.005276,-0.000224278
+0.00528,-0.000224392
+0.00528,-0.000224392
+0.005284,-0.000224525
+0.005284,-0.000224525
+0.005288,-0.000224674
+0.005288,-0.000224674
+0.00529,-0.000224755
+0.005292,-0.000224841
+0.005296,-0.000225029
+0.005296,-0.000225029
+0.0053,-0.000225245
+0.005304,-0.000225495
+0.005308,-0.000225786
+0.00531,-0.000225947
+0.005312,-0.000226121
+0.005312,-0.000226121
+0.005316,-0.000226505
+0.00532,-0.000226941
+0.005324,-0.000227428
+0.005328,-0.000227965
+0.00533,-0.000228252
+0.005332,-0.00022855
+0.005336,-0.000229176
+0.00534,-0.000229836
+0.00534,-0.000229836
+0.005344,-0.000230523
+0.005344,-0.000230523
+0.005348,-0.000231226
+0.00535,-0.000231581
+0.005352,-0.000231935
+0.005356,-0.000232638
+0.005356,-0.000232638
+0.00536,-0.000233323
+0.005364,-0.000233978
+0.005364,-0.000233978
+0.005368,-0.000234594
+0.00537,-0.000234883
+0.005372,-0.000235158
+0.005376,-0.000235663
+0.005376,-0.000235663
+0.00538,-0.000236101
+0.005384,-0.000236466
+0.005388,-0.000236753
+0.00539,-0.000236867
+0.005392,-0.00023696
+0.005396,-0.000237087
+0.005396,-0.000237087
+0.0054,-0.000237135
+0.005404,-0.000237108
+0.005408,-0.000237048
+0.00541,-0.000237024
+0.005412,-0.000237012
+0.005416,-0.00023703
+0.00542,-0.0002371
+0.005424,-0.000237211
+0.005424,-0.000237211
+0.005428,-0.000237349
+0.00543,-0.000237423
+0.005432,-0.000237496
+0.005436,-0.000237635
+0.00544,-0.000237751
+0.005444,-0.00023783
+0.005448,-0.000237861
+0.00545,-0.000237856
+0.005452,-0.000237837
+0.005456,-0.000237773
+0.00546,-0.000237706
+0.005464,-0.000237662
+0.005468,-0.000237651
+0.00547,-0.000237656
+0.005472,-0.000237666
+0.005476,-0.000237693
+0.00548,-0.000237715
+0.005484,-0.000237714
+0.005488,-0.000237684
+0.00549,-0.000237658
+0.005492,-0.000237626
+0.005496,-0.000237551
+0.0055,-0.000237473
+0.005504,-0.0002374
+0.005504,-0.0002374
+0.005508,-0.00023734
+0.00551,-0.000237315
+0.005512,-0.000237295
+0.005516,-0.000237264
+0.00552,-0.000237247
+0.00552,-0.000237247
+0.005524,-0.00023724
+0.005528,-0.000237238
+0.00553,-0.000237237
+0.005532,-0.000237237
+0.005532,-0.000237237
+0.005536,-0.000237234
+0.005536,-0.000237234
+0.00554,-0.000237225
+0.00554,-0.000237225
+0.005544,-0.00023721
+0.005544,-0.00023721
+0.005548,-0.000237187
+0.00555,-0.000237174
+0.005552,-0.000237159
+0.005556,-0.000237128
+0.00556,-0.000237096
+0.00556,-0.000237096
+0.005564,-0.000237066
+0.005568,-0.000237041
+0.005568,-0.000237041
+0.00557,-0.000237031
+0.005572,-0.000237024
+0.005572,-0.000237024
+0.005576,-0.000237016
+0.00558,-0.000237018
+0.005584,-0.000237027
+0.005588,-0.000237038
+0.00559,-0.000237041
+0.005592,-0.000237043
+0.005596,-0.000237038
+0.0056,-0.000237027
+0.005604,-0.00023701
+0.005608,-0.000236992
+0.00561,-0.000236983
+0.005612,-0.000236976
+0.005616,-0.000236965
+0.005616,-0.000236965
+0.00562,-0.000236964
+0.00562,-0.000236964
+0.005624,-0.000236973
+0.005624,-0.000236973
+0.005628,-0.000236988
+0.00563,-0.000236996
+0.005632,-0.000237003
+0.005632,-0.000237003
+0.005636,-0.000237011
+0.005636,-0.000237011
+0.00564,-0.000237012
+0.005644,-0.000237008
+0.005644,-0.000237008
+0.005648,-0.000237007
+0.005648,-0.000237007
+0.00565,-0.000237008
+0.005652,-0.000237012
+0.005656,-0.000237026
+0.00566,-0.000237048
+0.005664,-0.000237073
+0.005664,-0.000237073
+0.005668,-0.000237097
+0.00567,-0.000237107
+0.005672,-0.000237117
+0.005676,-0.000237132
+0.00568,-0.000237146
+0.005684,-0.000237162
+0.005688,-0.000237182
+0.005688,-0.000237182
+0.00569,-0.000237195
+0.005692,-0.000237209
+0.005696,-0.000237242
+0.0057,-0.000237282
+0.0057,-0.000237282
+0.005704,-0.000237326
+0.005708,-0.000237372
+0.00571,-0.000237396
+0.005712,-0.000237419
+0.005712,-0.000237419
+0.005716,-0.000237465
+0.005716,-0.000237465
+0.00572,-0.000237509
+0.005724,-0.00023755
+0.005728,-0.000237588
+0.00573,-0.000237606
+0.005732,-0.000237623
+0.005736,-0.000237655
+0.00574,-0.000237683
+0.005744,-0.000237708
+0.005748,-0.000237729
+0.00575,-0.000237738
+0.005752,-0.000237746
+0.005752,-0.000237746
+0.005756,-0.000237758
+0.005756,-0.000237758
+0.00576,-0.000237764
+0.00576,-0.000237764
+0.005764,-0.000237765
+0.005764,-0.000237765
+0.005768,-0.000237759
+0.00577,-0.000237755
+0.005772,-0.000237751
+0.005776,-0.000237745
+0.00578,-0.000237744
+0.005784,-0.000237746
+0.005788,-0.000237748
+0.005788,-0.000237748
+0.00579,-0.000237749
+0.005792,-0.000237748
+0.005796,-0.000237743
+0.005796,-0.000237743
+0.0058,-0.000237734
+0.005804,-0.000237723
+0.005808,-0.000237713
+0.00581,-0.00023771
+0.005812,-0.000237708
+0.005816,-0.000237706
+0.00582,-0.000237704
+0.005824,-0.000237701
+0.005828,-0.000237693
+0.00583,-0.000237687
+0.005832,-0.000237681
+0.005836,-0.000237667
+0.00584,-0.000237654
+0.005844,-0.000237644
+0.005844,-0.000237644
+0.005848,-0.000237636
+0.00585,-0.000237632
+0.005852,-0.000237629
+0.005852,-0.000237629
+0.005856,-0.000237622
+0.00586,-0.000237613
+0.005864,-0.0002376
+0.005868,-0.000237583
+0.00587,-0.000237573
+0.005872,-0.000237563
+0.005876,-0.000237542
+0.00588,-0.00023752
+0.005884,-0.000237499
+0.005888,-0.000237478
+0.005888,-0.000237478
+0.00589,-0.000237468
+0.005892,-0.000237458
+0.005892,-0.000237458
+0.005896,-0.000237438
+0.0059,-0.000237416
+0.0059,-0.000237416
+0.005904,-0.000237391
+0.005908,-0.000237364
+0.00591,-0.00023735
+0.005912,-0.000237334
+0.005916,-0.000237302
+0.00592,-0.000237268
+0.005924,-0.000237232
+0.005928,-0.000237196
+0.005928,-0.000237196
+0.00593,-0.000237179
+0.005932,-0.000237162
+0.005932,-0.000237162
+0.005936,-0.000237129
+0.005936,-0.000237129
+0.00594,-0.000237099
+0.005944,-0.000237073
+0.005948,-0.000237051
+0.005948,-0.000237051
+0.00595,-0.000237042
+0.005952,-0.000237035
+0.005956,-0.000237024
+0.00596,-0.000237018
+0.005964,-0.000237019
+0.005968,-0.000237026
+0.00597,-0.00023703
+0.005972,-0.000237033
+0.005976,-0.000237039
+0.00598,-0.00023704
+0.005984,-0.000237038
+0.005984,-0.000237038
+0.005988,-0.000237037
+0.00599,-0.000237038
+0.005992,-0.00023704
+0.005996,-0.000237049
+0.005996,-0.000237049
+0.006,-0.000237061
+0.006004,-0.000237074
+0.006008,-0.000237085
+0.00601,-0.000237089
+0.006012,-0.000237092
+0.006016,-0.000237097
+0.00602,-0.000237102
+0.006024,-0.00023711
+0.006028,-0.000237122
+0.00603,-0.000237129
+0.006032,-0.000237137
+0.006036,-0.000237155
+0.00604,-0.000237172
+0.006044,-0.000237187
+0.006048,-0.0002372
+0.00605,-0.000237205
+0.006052,-0.00023721
+0.006056,-0.00023722
+0.00606,-0.000237231
+0.006064,-0.000237243
+0.006068,-0.000237258
+0.00607,-0.000237267
+0.006072,-0.000237276
+0.006076,-0.000237295
+0.00608,-0.000237316
+0.006084,-0.000237336
+0.006088,-0.000237355
+0.00609,-0.000237364
+0.006092,-0.000237373
+0.006096,-0.000237389
+0.006096,-0.000237389
+0.0061,-0.000237404
+0.006104,-0.000237419
+0.006108,-0.000237434
+0.00611,-0.000237441
+0.006112,-0.000237449
+0.006112,-0.000237449
+0.006116,-0.000237466
+0.00612,-0.000237484
+0.006124,-0.000237504
+0.006128,-0.000237524
+0.00613,-0.000237534
+0.006132,-0.000237544
+0.006136,-0.000237564
+0.00614,-0.000237582
+0.00614,-0.000237582
+0.006144,-0.000237597
+0.006144,-0.000237597
+0.006148,-0.00023761
+0.00615,-0.000237615
+0.006152,-0.000237619
+0.006156,-0.000237623
+0.00616,-0.000237623
+0.006164,-0.00023762
+0.006168,-0.000237614
+0.00617,-0.000237611
+0.006172,-0.000237609
+0.006176,-0.000237607
+0.00618,-0.000237607
+0.006184,-0.000237607
+0.006184,-0.000237607
+0.006188,-0.000237604
+0.00619,-0.000237601
+0.006192,-0.000237597
+0.006196,-0.000237587
+0.0062,-0.000237576
+0.006204,-0.000237565
+0.006208,-0.000237556
+0.00621,-0.000237552
+0.006212,-0.000237549
+0.006216,-0.000237542
+0.006216,-0.000237542
+0.00622,-0.000237533
+0.00622,-0.000237533
+0.006224,-0.000237521
+0.006228,-0.000237506
+0.006228,-0.000237506
+0.00623,-0.000237497
+0.006232,-0.000237488
+0.006236,-0.00023747
+0.00624,-0.000237452
+0.006244,-0.000237434
+0.006248,-0.000237419
+0.00625,-0.000237411
+0.006252,-0.000237404
+0.006256,-0.00023739
+0.00626,-0.000237375
+0.006264,-0.000237359
+0.006268,-0.000237341
+0.006268,-0.000237341
+0.00627,-0.000237332
+0.006272,-0.000237323
+0.006276,-0.000237303
+0.00628,-0.000237284
+0.00628,-0.000237284
+0.006284,-0.000237265
+0.006288,-0.000237247
+0.00629,-0.000237239
+0.006292,-0.000237231
+0.006296,-0.000237218
+0.0063,-0.000237206
+0.006304,-0.000237196
+0.006308,-0.000237188
+0.00631,-0.000237184
+0.006312,-0.00023718
+0.006316,-0.000237174
+0.00632,-0.000237167
+0.006324,-0.000237161
+0.006328,-0.000237154
+0.00633,-0.000237151
+0.006332,-0.000237148
+0.006332,-0.000237148
+0.006336,-0.000237143
+0.00634,-0.000237138
+0.006344,-0.000237135
+0.006348,-0.000237134
+0.00635,-0.000237135
+0.006352,-0.000237136
+0.006352,-0.000237136
+0.006356,-0.000237139
+0.006356,-0.000237139
+0.00636,-0.000237143
+0.006364,-0.000237146
+0.006368,-0.000237148
+0.00637,-0.000237149
+0.006372,-0.000237149
+0.006376,-0.000237151
+0.00638,-0.000237154
+0.006384,-0.000237159
+0.006388,-0.000237167
+0.00639,-0.000237171
+0.006392,-0.000237175
+0.006396,-0.000237183
+0.0064,-0.000237191
+0.006404,-0.000237198
+0.006408,-0.000237205
+0.00641,-0.000237209
+0.006412,-0.000237214
+0.006416,-0.000237224
+0.00642,-0.000237237
+0.006424,-0.000237252
+0.006424,-0.000237252
+0.006428,-0.000237267
+0.00643,-0.000237275
+0.006432,-0.000237283
+0.006432,-0.000237283
+0.006436,-0.000237299
+0.00644,-0.000237315
+0.006444,-0.00023733
+0.006448,-0.000237346
+0.00645,-0.000237354
+0.006452,-0.000237363
+0.006456,-0.00023738
+0.006456,-0.00023738
+0.00646,-0.000237399
+0.006464,-0.000237418
+0.006464,-0.000237418
+0.006468,-0.000237438
+0.006468,-0.000237438
+0.00647,-0.000237448
+0.006472,-0.000237458
+0.006476,-0.000237478
+0.00648,-0.000237496
+0.006484,-0.000237513
+0.006488,-0.000237529
+0.00649,-0.000237536
+0.006492,-0.000237542
+0.006496,-0.000237553
+0.0065,-0.000237563
+0.006504,-0.00023757
+0.006504,-0.00023757
+0.006508,-0.000237576
+0.006508,-0.000237576
+0.00651,-0.000237578
+0.006512,-0.00023758
+0.006516,-0.000237583
+0.00652,-0.000237584
+0.006524,-0.000237584
+0.006528,-0.000237583
+0.00653,-0.000237582
+0.006532,-0.000237581
+0.006536,-0.000237578
+0.00654,-0.000237576
+0.006544,-0.000237575
+0.006544,-0.000237575
+0.006548,-0.000237574
+0.006548,-0.000237574
+0.00655,-0.000237573
+0.006552,-0.000237572
+0.006556,-0.000237568
+0.00656,-0.000237564
+0.006564,-0.000237558
+0.006568,-0.000237553
+0.00657,-0.00023755
+0.006572,-0.000237548
+0.006576,-0.000237543
+0.00658,-0.000237538
+0.00658,-0.000237538
+0.006584,-0.000237533
+0.006588,-0.000237526
+0.00659,-0.000237523
+0.006592,-0.000237518
+0.006596,-0.00023751
+0.006596,-0.00023751
+0.0066,-0.0002375
+0.006604,-0.00023749
+0.006604,-0.00023749
+0.006608,-0.00023748
+0.00661,-0.000237475
+0.006612,-0.00023747
+0.006616,-0.00023746
+0.00662,-0.00023745
+0.006624,-0.000237438
+0.006628,-0.000237425
+0.00663,-0.000237418
+0.006632,-0.000237411
+0.006636,-0.000237396
+0.00664,-0.00023738
+0.006644,-0.000237364
+0.006648,-0.000237348
+0.00665,-0.00023734
+0.006652,-0.000237331
+0.006656,-0.000237315
+0.00666,-0.000237299
+0.006664,-0.000237283
+0.006668,-0.000237267
+0.006668,-0.000237267
+0.00667,-0.000237259
+0.006672,-0.000237251
+0.006672,-0.000237251
+0.006676,-0.000237235
+0.00668,-0.00023722
+0.006684,-0.000237205
+0.006688,-0.000237192
+0.00669,-0.000237185
+0.006692,-0.000237179
+0.006696,-0.000237168
+0.0067,-0.000237159
+0.006704,-0.000237153
+0.006704,-0.000237153
+0.006708,-0.000237148
+0.006708,-0.000237148
+0.00671,-0.000237147
+0.006712,-0.000237146
+0.006716,-0.000237147
+0.00672,-0.00023715
+0.006724,-0.000237153
+0.006728,-0.000237156
+0.00673,-0.000237157
+0.006732,-0.000237158
+0.006736,-0.000237159
+0.00674,-0.000237159
+0.006744,-0.000237162
+0.006744,-0.000237162
+0.006748,-0.000237167
+0.00675,-0.00023717
+0.006752,-0.000237173
+0.006752,-0.000237173
+0.006756,-0.00023718
+0.00676,-0.000237187
+0.00676,-0.000237187
+0.006764,-0.000237194
+0.006768,-0.000237199
+0.006768,-0.000237199
+0.00677,-0.000237201
+0.006772,-0.000237203
+0.006772,-0.000237203
+0.006776,-0.000237209
+0.00678,-0.000237216
+0.006784,-0.000237225
+0.006788,-0.000237236
+0.00679,-0.000237241
+0.006792,-0.000237247
+0.006796,-0.000237258
+0.0068,-0.000237268
+0.006804,-0.000237277
+0.006808,-0.000237286
+0.00681,-0.000237291
+0.006812,-0.000237295
+0.006816,-0.000237305
+0.00682,-0.000237316
+0.006824,-0.000237329
+0.006828,-0.000237342
+0.00683,-0.000237349
+0.006832,-0.000237357
+0.006836,-0.000237371
+0.00684,-0.000237385
+0.006844,-0.000237399
+0.006848,-0.000237412
+0.00685,-0.000237418
+0.006852,-0.000237424
+0.006852,-0.000237424
+0.006856,-0.000237436
+0.006856,-0.000237436
+0.00686,-0.000237447
+0.006864,-0.000237459
+0.006868,-0.000237471
+0.00687,-0.000237477
+0.006872,-0.000237483
+0.006876,-0.000237495
+0.00688,-0.000237507
+0.006884,-0.000237518
+0.006888,-0.000237528
+0.00689,-0.000237532
+0.006892,-0.000237536
+0.006896,-0.000237542
+0.006896,-0.000237542
+0.0069,-0.000237547
+0.0069,-0.000237547
+0.006904,-0.000237549
+0.006908,-0.000237549
+0.00691,-0.000237548
+0.006912,-0.000237547
+0.006916,-0.000237544
+0.00692,-0.000237541
+0.006924,-0.000237539
+0.006928,-0.000237538
+0.006928,-0.000237538
+0.00693,-0.000237538
+0.006932,-0.000237537
+0.006936,-0.000237535
+0.006936,-0.000237535
+0.00694,-0.000237531
+0.006944,-0.000237525
+0.006948,-0.000237518
+0.00695,-0.000237514
+0.006952,-0.000237511
+0.006956,-0.000237504
+0.00696,-0.000237498
+0.006964,-0.000237493
+0.006968,-0.000237486
+0.00697,-0.000237483
+0.006972,-0.000237479
+0.006976,-0.00023747
+0.00698,-0.00023746
+0.006984,-0.000237448
+0.006988,-0.000237437
+0.00699,-0.000237431
+0.006992,-0.000237425
+0.006996,-0.000237415
+0.007,-0.000237404
+0.007004,-0.000237395
+0.007008,-0.000237384
+0.00701,-0.000237379
+0.007012,-0.000237374
+0.007016,-0.000237362
+0.00702,-0.00023735
+0.007024,-0.000237336
+0.007028,-0.000237323
+0.00703,-0.000237316
+0.007032,-0.00023731
+0.007032,-0.00023731
+0.007036,-0.000237297
+0.00704,-0.000237286
+0.007044,-0.000237275
+0.007048,-0.000237265
+0.00705,-0.000237261
+0.007052,-0.000237256
+0.007056,-0.000237248
+0.00706,-0.00023724
+0.007064,-0.000237232
+0.007068,-0.000237224
+0.00707,-0.00023722
+0.007072,-0.000237216
+0.007076,-0.000237209
+0.00708,-0.000237202
+0.007084,-0.000237197
+0.007088,-0.000237193
+0.00709,-0.000237191
+0.007092,-0.00023719
+0.007096,-0.000237189
+0.0071,-0.00023719
+0.007104,-0.000237193
+0.007104,-0.000237193
+0.007108,-0.000237195
+0.00711,-0.000237197
+0.007112,-0.000237198
+0.007116,-0.000237199
+0.00712,-0.0002372
+0.007124,-0.000237201
+0.007124,-0.000237201
+0.007128,-0.000237203
+0.00713,-0.000237205
+0.007132,-0.000237208
+0.007136,-0.000237213
+0.00714,-0.00023722
+0.007144,-0.000237226
+0.007148,-0.000237232
+0.00715,-0.000237235
+0.007152,-0.000237238
+0.007156,-0.000237243
+0.007156,-0.000237243
+0.00716,-0.000237249
+0.00716,-0.000237249
+0.007164,-0.000237257
+0.007168,-0.000237265
+0.00717,-0.00023727
+0.007172,-0.000237275
+0.007176,-0.000237286
+0.007176,-0.000237286
+0.00718,-0.000237297
+0.007184,-0.000237309
+0.007188,-0.000237319
+0.007188,-0.000237319
+0.00719,-0.000237324
+0.007192,-0.000237329
+0.007196,-0.00023734
+0.0072,-0.00023735
+0.007204,-0.000237361
+0.007208,-0.000237373
+0.00721,-0.000237379
+0.007212,-0.000237385
+0.007212,-0.000237385
+0.007216,-0.000237398
+0.007216,-0.000237398
+0.00722,-0.000237411
+0.007224,-0.000237424
+0.007228,-0.000237436
+0.007228,-0.000237436
+0.00723,-0.000237442
+0.007232,-0.000237447
+0.007232,-0.000237447
+0.007236,-0.000237457
+0.007236,-0.000237457
+0.00724,-0.000237467
+0.007244,-0.000237475
+0.007248,-0.000237482
+0.00725,-0.000237485
+0.007252,-0.000237489
+0.007252,-0.000237489
+0.007256,-0.000237495
+0.00726,-0.000237501
+0.007264,-0.000237506
+0.007268,-0.000237511
+0.00727,-0.000237513
+0.007272,-0.000237515
+0.007276,-0.000237518
+0.00728,-0.000237519
+0.007284,-0.000237519
+0.007284,-0.000237519
+0.007288,-0.000237517
+0.00729,-0.000237516
+0.007292,-0.000237515
+0.007296,-0.000237513
+0.0073,-0.00023751
+0.007304,-0.000237509
+0.007308,-0.000237508
+0.00731,-0.000237507
+0.007312,-0.000237507
+0.007316,-0.000237504
+0.00732,-0.0002375
+0.007324,-0.000237495
+0.007328,-0.000237489
+0.007328,-0.000237489
+0.00733,-0.000237486
+0.007332,-0.000237483
+0.007336,-0.000237478
+0.007336,-0.000237478
+0.00734,-0.000237473
+0.007344,-0.000237468
+0.007344,-0.000237468
+0.007348,-0.000237462
+0.007348,-0.000237462
+0.00735,-0.000237459
+0.007352,-0.000237456
+0.007356,-0.000237448
+0.00736,-0.000237439
+0.007364,-0.00023743
+0.007364,-0.00023743
+0.007368,-0.00023742
+0.00737,-0.000237415
+0.007372,-0.00023741
+0.007376,-0.000237401
+0.007376,-0.000237401
+0.00738,-0.000237392
+0.00738,-0.000237392
+0.007384,-0.000237382
+0.007384,-0.000237382
+0.007388,-0.000237373
+0.007388,-0.000237373
+0.00739,-0.000237368
+0.007392,-0.000237363
+0.007396,-0.000237352
+0.007396,-0.000237352
+0.0074,-0.00023734
+0.0074,-0.00023734
+0.007404,-0.000237328
+0.007408,-0.000237316
+0.007408,-0.000237316
+0.00741,-0.00023731
+0.007412,-0.000237304
+0.007416,-0.000237292
+0.00742,-0.000237281
+0.007424,-0.000237271
+0.007428,-0.000237262
+0.00743,-0.000237258
+0.007432,-0.000237254
+0.007436,-0.000237246
+0.00744,-0.000237239
+0.00744,-0.000237239
+0.007444,-0.000237232
+0.007448,-0.000237225
+0.00745,-0.000237222
+0.007452,-0.00023722
+0.007456,-0.000237215
+0.00746,-0.000237211
+0.00746,-0.000237211
+0.007464,-0.000237208
+0.007468,-0.000237207
+0.00747,-0.000237207
+0.007472,-0.000237207
+0.007472,-0.000237207
+0.007476,-0.000237209
+0.00748,-0.000237211
+0.00748,-0.000237211
+0.007484,-0.000237214
+0.007484,-0.000237214
+0.007488,-0.000237216
+0.00749,-0.000237216
+0.007492,-0.000237217
+0.007496,-0.000237218
+0.0075,-0.00023722
+0.007504,-0.000237223
+0.007504,-0.000237223
+0.007508,-0.000237227
+0.00751,-0.00023723
+0.007512,-0.000237232
+0.007516,-0.000237238
+0.00752,-0.000237244
+0.007524,-0.000237249
+0.007528,-0.000237254
+0.00753,-0.000237257
+0.007532,-0.000237259
+0.007532,-0.000237259
+0.007536,-0.000237264
+0.007536,-0.000237264
+0.00754,-0.00023727
+0.00754,-0.00023727
+0.007544,-0.000237278
+0.007548,-0.000237286
+0.007548,-0.000237286
+0.00755,-0.00023729
+0.007552,-0.000237295
+0.007552,-0.000237295
+0.007556,-0.000237304
+0.00756,-0.000237313
+0.007564,-0.000237321
+0.007568,-0.00023733
+0.00757,-0.000237334
+0.007572,-0.000237338
+0.007576,-0.000237346
+0.00758,-0.000237355
+0.00758,-0.000237355
+0.007584,-0.000237364
+0.007588,-0.000237375
+0.007588,-0.000237375
+0.00759,-0.00023738
+0.007592,-0.000237386
+0.007592,-0.000237386
+0.007596,-0.000237397
+0.0076,-0.000237408
+0.007604,-0.000237418
+0.007608,-0.000237428
+0.00761,-0.000237432
+0.007612,-0.000237436
+0.007616,-0.000237445
+0.00762,-0.000237452
+0.007624,-0.000237459
+0.007624,-0.000237459
+0.007628,-0.000237466
+0.007628,-0.000237466
+0.00763,-0.00023747
+0.007632,-0.000237473
+0.007636,-0.00023748
+0.00764,-0.000237486
+0.007644,-0.000237491
+0.007644,-0.000237491
+0.007648,-0.000237496
+0.00765,-0.000237498
+0.007652,-0.000237499
+0.007656,-0.000237501
+0.007656,-0.000237501
+0.00766,-0.000237501
+0.007664,-0.0002375
+0.007668,-0.000237498
+0.007668,-0.000237498
+0.00767,-0.000237497
+0.007672,-0.000237496
+0.007676,-0.000237494
+0.007676,-0.000237494
+0.00768,-0.000237492
+0.007684,-0.000237491
+0.007688,-0.00023749
+0.00769,-0.000237489
+0.007692,-0.000237487
+0.007696,-0.000237484
+0.007696,-0.000237484
+0.0077,-0.000237479
+0.007704,-0.000237473
+0.007708,-0.000237467
+0.00771,-0.000237464
+0.007712,-0.000237461
+0.007716,-0.000237456
+0.00772,-0.000237451
+0.007724,-0.000237446
+0.007728,-0.000237441
+0.00773,-0.000237437
+0.007732,-0.000237434
+0.007732,-0.000237434
+0.007736,-0.000237426
+0.00774,-0.000237417
+0.007744,-0.000237408
+0.007748,-0.000237399
+0.007748,-0.000237399
+0.00775,-0.000237395
+0.007752,-0.000237391
+0.007752,-0.000237391
+0.007756,-0.000237383
+0.00776,-0.000237375
+0.007764,-0.000237367
+0.007764,-0.000237367
+0.007768,-0.000237359
+0.00777,-0.000237355
+0.007772,-0.000237351
+0.007776,-0.000237342
+0.00778,-0.000237332
+0.007784,-0.000237322
+0.007788,-0.000237312
+0.00779,-0.000237307
+0.007792,-0.000237302
+0.007796,-0.000237294
+0.0078,-0.000237286
+0.007804,-0.000237278
+0.007808,-0.000237272
+0.00781,-0.000237269
+0.007812,-0.000237266
+0.007812,-0.000237266
+0.007816,-0.00023726
+0.00782,-0.000237254
+0.007824,-0.000237249
+0.007828,-0.000237244
+0.007828,-0.000237244
+0.00783,-0.000237241
+0.007832,-0.000237239
+0.007836,-0.000237234
+0.00784,-0.000237231
+0.007844,-0.000237229
+0.007848,-0.000237228
+0.00785,-0.000237228
+0.007852,-0.000237229
+0.007856,-0.00023723
+0.00786,-0.000237232
+0.007864,-0.000237235
+0.007868,-0.000237236
+0.00787,-0.000237237
+0.007872,-0.000237237
+0.007876,-0.000237239
+0.00788,-0.00023724
+0.007884,-0.000237243
+0.007888,-0.000237247
+0.00789,-0.00023725
+0.007892,-0.000237252
+0.007896,-0.000237258
+0.0079,-0.000237263
+0.007904,-0.000237269
+0.007908,-0.000237273
+0.00791,-0.000237276
+0.007912,-0.000237278
+0.007916,-0.000237283
+0.00792,-0.00023729
+0.007924,-0.000237297
+0.007928,-0.000237305
+0.00793,-0.000237309
+0.007932,-0.000237313
+0.007936,-0.000237322
+0.00794,-0.000237331
+0.00794,-0.000237331
+0.007944,-0.000237339
+0.007944,-0.000237339
+0.007948,-0.000237347
+0.007948,-0.000237347
+0.00795,-0.00023735
+0.007952,-0.000237354
+0.007956,-0.000237362
+0.00796,-0.00023737
+0.007964,-0.000237378
+0.007968,-0.000237387
+0.00797,-0.000237392
+0.007972,-0.000237397
+0.007976,-0.000237406
+0.00798,-0.000237415
+0.007984,-0.000237424
+0.007988,-0.000237432
+0.00799,-0.000237435
+0.007992,-0.000237439
+0.007996,-0.000237445
+0.008,-0.00023745
+0.008004,-0.000237455
+0.008004,-0.000237455
+0.008008,-0.00023746
+0.00801,-0.000237462
+0.008012,-0.000237465
+0.008016,-0.000237469
+0.00802,-0.000237473
+0.008024,-0.000237476
+0.008028,-0.000237479
+0.00803,-0.00023748
+0.008032,-0.000237481
+0.008032,-0.000237481
+0.008036,-0.000237482
+0.00804,-0.000237481
+0.008044,-0.00023748
+0.008048,-0.000237478
+0.00805,-0.000237477
+0.008052,-0.000237476
+0.008056,-0.000237474
+0.00806,-0.000237473
+0.008064,-0.000237472
+0.008068,-0.00023747
+0.00807,-0.000237469
+0.008072,-0.000237467
+0.008072,-0.000237467
+0.008076,-0.000237464
+0.008076,-0.000237464
+0.00808,-0.000237459
+0.00808,-0.000237459
+0.008084,-0.000237454
+0.008088,-0.000237449
+0.00809,-0.000237447
+0.008092,-0.000237444
+0.008096,-0.000237439
+0.0081,-0.000237435
+0.008104,-0.00023743
+0.008108,-0.000237425
+0.00811,-0.000237422
+0.008112,-0.000237418
+0.008116,-0.000237411
+0.00812,-0.000237403
+0.008124,-0.000237395
+0.008128,-0.000237387
+0.00813,-0.000237383
+0.008132,-0.000237379
+0.008136,-0.000237372
+0.00814,-0.000237364
+0.008144,-0.000237357
+0.008148,-0.00023735
+0.00815,-0.000237346
+0.008152,-0.000237342
+0.008156,-0.000237333
+0.00816,-0.000237325
+0.008164,-0.000237316
+0.008168,-0.000237307
+0.00817,-0.000237303
+0.008172,-0.000237299
+0.008176,-0.000237291
+0.00818,-0.000237284
+0.008184,-0.000237278
+0.008184,-0.000237278
+0.008188,-0.000237273
+0.008188,-0.000237273
+0.00819,-0.00023727
+0.008192,-0.000237268
+0.008196,-0.000237263
+0.0082,-0.000237259
+0.008204,-0.000237255
+0.008208,-0.000237251
+0.008208,-0.000237251
+0.00821,-0.000237249
+0.008212,-0.000237248
+0.008216,-0.000237245
+0.00822,-0.000237244
+0.00822,-0.000237244
+0.008224,-0.000237243
+0.008228,-0.000237243
+0.00823,-0.000237244
+0.008232,-0.000237245
+0.008236,-0.000237247
+0.00824,-0.000237249
+0.008244,-0.000237251
+0.008244,-0.000237251
+0.008248,-0.000237252
+0.00825,-0.000237253
+0.008252,-0.000237253
+0.008256,-0.000237255
+0.00826,-0.000237257
+0.008264,-0.000237261
+0.008264,-0.000237261
+0.008268,-0.000237265
+0.008268,-0.000237265
+0.00827,-0.000237268
+0.008272,-0.00023727
+0.008276,-0.000237275
+0.00828,-0.00023728
+0.008284,-0.000237284
+0.008288,-0.000237288
+0.00829,-0.000237291
+0.008292,-0.000237293
+0.008296,-0.000237298
+0.0083,-0.000237304
+0.008304,-0.000237311
+0.008308,-0.000237318
+0.00831,-0.000237322
+0.008312,-0.000237325
+0.008316,-0.000237333
+0.00832,-0.00023734
+0.008324,-0.000237347
+0.008328,-0.000237354
+0.00833,-0.000237357
+0.008332,-0.000237361
+0.008336,-0.000237368
+0.00834,-0.000237375
+0.008344,-0.000237383
+0.008348,-0.000237391
+0.00835,-0.000237395
+0.008352,-0.000237399
+0.008356,-0.000237407
+0.00836,-0.000237415
+0.008364,-0.000237422
+0.008368,-0.000237428
+0.00837,-0.000237431
+0.008372,-0.000237434
+0.008372,-0.000237434
+0.008376,-0.000237439
+0.008376,-0.000237439
+0.00838,-0.000237444
+0.008384,-0.000237449
+0.008388,-0.000237453
+0.00839,-0.000237455
+0.008392,-0.000237457
+0.008396,-0.00023746
+0.0084,-0.000237464
+0.008404,-0.000237466
+0.008404,-0.000237466
+0.008408,-0.000237468
+0.00841,-0.000237469
+0.008412,-0.000237469
+0.008416,-0.000237469
+0.00842,-0.000237467
+0.008424,-0.000237466
+0.008428,-0.000237464
+0.00843,-0.000237463
+0.008432,-0.000237462
+0.008436,-0.000237461
+0.00844,-0.000237459
+0.008444,-0.000237458
+0.008448,-0.000237456
+0.00845,-0.000237454
+0.008452,-0.000237452
+0.008456,-0.000237448
+0.00846,-0.000237443
+0.00846,-0.000237443
+0.008464,-0.000237439
+0.008468,-0.000237434
+0.00847,-0.000237432
+0.008472,-0.000237429
+0.008476,-0.000237425
+0.00848,-0.000237421
+0.008484,-0.000237416
+0.008488,-0.000237411
+0.00849,-0.000237408
+0.008492,-0.000237404
+0.008496,-0.000237397
+0.0085,-0.00023739
+0.008504,-0.000237383
+0.008508,-0.000237376
+0.00851,-0.000237373
+0.008512,-0.000237369
+0.008516,-0.000237363
+0.00852,-0.000237357
+0.008524,-0.00023735
+0.008528,-0.000237344
+0.00853,-0.00023734
+0.008532,-0.000237337
+0.008536,-0.000237329
+0.00854,-0.000237322
+0.008544,-0.000237314
+0.008548,-0.000237307
+0.00855,-0.000237304
+0.008552,-0.0002373
+0.008556,-0.000237294
+0.008556,-0.000237294
+0.00856,-0.000237289
+0.00856,-0.000237289
+0.008564,-0.000237284
+0.008568,-0.00023728
+0.00857,-0.000237278
+0.008572,-0.000237276
+0.008576,-0.000237272
+0.00858,-0.000237268
+0.00858,-0.000237268
+0.008584,-0.000237265
+0.008588,-0.000237262
+0.00859,-0.00023726
+0.008592,-0.000237259
+0.008596,-0.000237257
+0.0086,-0.000237256
+0.0086,-0.000237256
+0.008604,-0.000237256
+0.008604,-0.000237256
+0.008608,-0.000237257
+0.00861,-0.000237258
+0.008612,-0.000237259
+0.008616,-0.000237261
+0.00862,-0.000237262
+0.008624,-0.000237264
+0.008624,-0.000237264
+0.008628,-0.000237265
+0.00863,-0.000237266
+0.008632,-0.000237266
+0.008636,-0.000237268
+0.00864,-0.000237271
+0.008644,-0.000237275
+0.008644,-0.000237275
+0.008648,-0.000237279
+0.00865,-0.000237282
+0.008652,-0.000237284
+0.008656,-0.000237289
+0.00866,-0.000237293
+0.008664,-0.000237297
+0.008668,-0.000237301
+0.00867,-0.000237304
+0.008672,-0.000237306
+0.008676,-0.000237311
+0.00868,-0.000237317
+0.008684,-0.000237323
+0.008688,-0.00023733
+0.00869,-0.000237334
+0.008692,-0.000237337
+0.008696,-0.000237344
+0.0087,-0.000237351
+0.008704,-0.000237357
+0.008708,-0.000237363
+0.00871,-0.000237366
+0.008712,-0.000237369
+0.008716,-0.000237375
+0.00872,-0.000237381
+0.008724,-0.000237388
+0.008728,-0.000237395
+0.00873,-0.000237399
+0.008732,-0.000237402
+0.008736,-0.000237409
+0.008736,-0.000237409
+0.00874,-0.000237415
+0.008744,-0.000237421
+0.008748,-0.000237426
+0.008748,-0.000237426
+0.00875,-0.000237429
+0.008752,-0.000237431
+0.008756,-0.000237435
+0.00876,-0.000237438
+0.008764,-0.000237442
+0.008768,-0.000237445
+0.00877,-0.000237447
+0.008772,-0.000237448
+0.008776,-0.000237451
+0.00878,-0.000237453
+0.00878,-0.000237453
+0.008784,-0.000237455
+0.008784,-0.000237455
+0.008788,-0.000237456
+0.00879,-0.000237456
+0.008792,-0.000237456
+0.008796,-0.000237455
+0.0088,-0.000237454
+0.008804,-0.000237452
+0.008808,-0.00023745
+0.008808,-0.00023745
+0.00881,-0.00023745
+0.008812,-0.000237449
+0.008812,-0.000237449
+0.008816,-0.000237448
+0.00882,-0.000237446
+0.008824,-0.000237445
+0.008828,-0.000237442
+0.00883,-0.000237441
+0.008832,-0.000237439
+0.008836,-0.000237435
+0.00884,-0.00023743
+0.00884,-0.00023743
+0.008844,-0.000237426
+0.008848,-0.000237422
+0.00885,-0.00023742
+0.008852,-0.000237418
+0.008856,-0.000237414
+0.00886,-0.000237409
+0.008864,-0.000237405
+0.008868,-0.000237399
+0.00887,-0.000237396
+0.008872,-0.000237393
+0.008876,-0.000237387
+0.00888,-0.00023738
+0.008884,-0.000237374
+0.008888,-0.000237367
+0.00889,-0.000237364
+0.008892,-0.000237361
+0.008896,-0.000237356
+0.0089,-0.00023735
+0.008904,-0.000237344
+0.008908,-0.000237338
+0.00891,-0.000237335
+0.008912,-0.000237332
+0.008916,-0.000237325
+0.00892,-0.000237318
+0.008924,-0.000237312
+0.008928,-0.000237306
+0.008928,-0.000237306
+0.00893,-0.000237303
+0.008932,-0.0002373
+0.008932,-0.0002373
+0.008936,-0.000237295
+0.008936,-0.000237295
+0.00894,-0.000237291
+0.008944,-0.000237287
+0.008948,-0.000237284
+0.00895,-0.000237282
+0.008952,-0.000237281
+0.008956,-0.000237278
+0.00896,-0.000237275
+0.008964,-0.000237272
+0.008968,-0.00023727
+0.008968,-0.00023727
+0.00897,-0.000237269
+0.008972,-0.000237269
+0.008976,-0.000237268
+0.00898,-0.000237268
+0.008984,-0.000237268
+0.008988,-0.00023727
+0.00899,-0.00023727
+0.008992,-0.000237271
+0.008996,-0.000237273
+0.009,-0.000237274
+0.009004,-0.000237276
+0.009004,-0.000237276
+0.009008,-0.000237277
+0.00901,-0.000237278
+0.009012,-0.000237279
+0.009016,-0.000237281
+0.00902,-0.000237284
+0.009024,-0.000237288
+0.009028,-0.000237292
+0.009028,-0.000237292
+0.00903,-0.000237294
+0.009032,-0.000237296
+0.009032,-0.000237296
+0.009036,-0.0002373
+0.00904,-0.000237304
+0.009044,-0.000237308
+0.009048,-0.000237312
+0.00905,-0.000237314
+0.009052,-0.000237316
+0.009056,-0.000237321
+0.00906,-0.000237327
+0.009064,-0.000237333
+0.009068,-0.000237339
+0.00907,-0.000237342
+0.009072,-0.000237345
+0.009076,-0.000237351
+0.00908,-0.000237357
+0.009084,-0.000237363
+0.009088,-0.000237368
+0.00909,-0.000237371
+0.009092,-0.000237373
+0.009096,-0.000237379
+0.0091,-0.000237385
+0.009104,-0.000237391
+0.009108,-0.000237397
+0.009108,-0.000237397
+0.00911,-0.0002374
+0.009112,-0.000237403
+0.009112,-0.000237403
+0.009116,-0.000237409
+0.009116,-0.000237409
+0.00912,-0.000237415
+0.009124,-0.000237419
+0.009128,-0.000237423
+0.00913,-0.000237425
+0.009132,-0.000237427
+0.009136,-0.00023743
+0.00914,-0.000237433
+0.009144,-0.000237436
+0.009144,-0.000237436
+0.009148,-0.000237439
+0.00915,-0.00023744
+0.009152,-0.000237441
+0.009156,-0.000237443
+0.009156,-0.000237443
+0.00916,-0.000237445
+0.009164,-0.000237446
+0.009164,-0.000237446
+0.009168,-0.000237446
+0.00917,-0.000237446
+0.009172,-0.000237446
+0.009176,-0.000237444
+0.00918,-0.000237443
+0.00918,-0.000237443
+0.009184,-0.000237441
+0.009188,-0.00023744
+0.00919,-0.000237439
+0.009192,-0.000237439
+0.009192,-0.000237439
+0.009196,-0.000237437
+0.0092,-0.000237436
+0.009204,-0.000237433
+0.009208,-0.000237431
+0.00921,-0.000237429
+0.009212,-0.000237427
+0.009216,-0.000237423
+0.00922,-0.000237419
+0.00922,-0.000237419
+0.009224,-0.000237415
+0.009224,-0.000237415
+0.009228,-0.000237411
+0.009228,-0.000237411
+0.00923,-0.000237409
+0.009232,-0.000237407
+0.009236,-0.000237404
+0.00924,-0.000237399
+0.009244,-0.000237395
+0.009248,-0.00023739
+0.00925,-0.000237387
+0.009252,-0.000237384
+0.009256,-0.000237378
+0.00926,-0.000237372
+0.009264,-0.000237367
+0.009268,-0.000237361
+0.00927,-0.000237358
+0.009272,-0.000237356
+0.009276,-0.000237351
+0.00928,-0.000237346
+0.009284,-0.00023734
+0.009288,-0.000237335
+0.009288,-0.000237335
+0.00929,-0.000237332
+0.009292,-0.000237329
+0.009296,-0.000237323
+0.009296,-0.000237323
+0.0093,-0.000237318
+0.0093,-0.000237318
+0.009304,-0.000237312
+0.009304,-0.000237312
+0.009308,-0.000237307
+0.009308,-0.000237307
+0.00931,-0.000237305
+0.009312,-0.000237303
+0.009316,-0.000237299
+0.00932,-0.000237295
+0.009324,-0.000237292
+0.009328,-0.000237289
+0.009328,-0.000237289
+0.00933,-0.000237288
+0.009332,-0.000237287
+0.009332,-0.000237287
+0.009336,-0.000237284
+0.00934,-0.000237282
+0.009344,-0.00023728
+0.009348,-0.000237278
+0.00935,-0.000237278
+0.009352,-0.000237277
+0.009356,-0.000237277
+0.00936,-0.000237277
+0.009364,-0.000237278
+0.009368,-0.00023728
+0.00937,-0.000237281
+0.009372,-0.000237281
+0.009376,-0.000237283
+0.00938,-0.000237284
+0.00938,-0.000237284
+0.009384,-0.000237285
+0.009388,-0.000237287
+0.00939,-0.000237288
+0.009392,-0.000237289
+0.009396,-0.000237292
+0.0094,-0.000237295
+0.009404,-0.000237299
+0.009408,-0.000237302
+0.009408,-0.000237302
+0.00941,-0.000237304
+0.009412,-0.000237306
+0.009412,-0.000237306
+0.009416,-0.00023731
+0.009416,-0.00023731
+0.00942,-0.000237314
+0.00942,-0.000237314
+0.009424,-0.000237317
+0.009428,-0.000237321
+0.00943,-0.000237323
+0.009432,-0.000237326
+0.009436,-0.00023733
+0.00944,-0.000237336
+0.009444,-0.000237341
+0.009448,-0.000237347
+0.00945,-0.00023735
+0.009452,-0.000237353
+0.009456,-0.000237358
+0.00946,-0.000237363
+0.009464,-0.000237368
+0.009468,-0.000237372
+0.009468,-0.000237372
+0.00947,-0.000237375
+0.009472,-0.000237377
+0.009476,-0.000237382
+0.009476,-0.000237382
+0.00948,-0.000237388
+0.009484,-0.000237393
+0.009488,-0.000237399
+0.009488,-0.000237399
+0.00949,-0.000237401
+0.009492,-0.000237404
+0.009492,-0.000237404
+0.009496,-0.000237408
+0.0095,-0.000237413
+0.009504,-0.000237417
+0.009508,-0.00023742
+0.00951,-0.000237421
+0.009512,-0.000237423
+0.009516,-0.000237425
+0.009516,-0.000237425
+0.00952,-0.000237428
+0.00952,-0.000237428
+0.009524,-0.00023743
+0.009528,-0.000237432
+0.00953,-0.000237433
+0.009532,-0.000237434
+0.009536,-0.000237436
+0.009536,-0.000237436
+0.00954,-0.000237437
+0.009544,-0.000237437
+0.009544,-0.000237437
+0.009548,-0.000237437
+0.00955,-0.000237436
+0.009552,-0.000237436
+0.009556,-0.000237435
+0.00956,-0.000237433
+0.009564,-0.000237432
+0.009568,-0.00023743
+0.00957,-0.00023743
+0.009572,-0.000237429
+0.009572,-0.000237429
+0.009576,-0.000237428
+0.00958,-0.000237426
+0.009584,-0.000237423
+0.009588,-0.00023742
+0.00959,-0.000237419
+0.009592,-0.000237417
+0.009596,-0.000237413
+0.0096,-0.000237409
+0.0096,-0.000237409
+0.009604,-0.000237406
+0.009608,-0.000237402
+0.00961,-0.000237401
+0.009612,-0.000237399
+0.009616,-0.000237395
+0.009616,-0.000237395
+0.00962,-0.000237391
+0.009624,-0.000237387
+0.009624,-0.000237387
+0.009628,-0.000237382
+0.009628,-0.000237382
+0.00963,-0.000237379
+0.009632,-0.000237376
+0.009632,-0.000237376
+0.009636,-0.000237371
+0.009636,-0.000237371
+0.00964,-0.000237366
+0.009644,-0.000237361
+0.009648,-0.000237356
+0.009648,-0.000237356
+0.00965,-0.000237353
+0.009652,-0.000237351
+0.009656,-0.000237346
+0.00966,-0.000237342
+0.00966,-0.000237342
+0.009664,-0.000237337
+0.009664,-0.000237337
+0.009668,-0.000237332
+0.00967,-0.00023733
+0.009672,-0.000237327
+0.009676,-0.000237322
+0.009676,-0.000237322
+0.00968,-0.000237317
+0.009684,-0.000237312
+0.009688,-0.000237308
+0.00969,-0.000237306
+0.009692,-0.000237305
+0.009696,-0.000237302
+0.0097,-0.000237299
+0.009704,-0.000237296
+0.009704,-0.000237296
+0.009708,-0.000237294
+0.00971,-0.000237293
+0.009712,-0.000237292
+0.009716,-0.00023729
+0.00972,-0.000237288
+0.00972,-0.000237288
+0.009724,-0.000237287
+0.009728,-0.000237286
+0.00973,-0.000237286
+0.009732,-0.000237285
+0.009732,-0.000237285
+0.009736,-0.000237286
+0.00974,-0.000237286
+0.009744,-0.000237288
+0.009748,-0.000237289
+0.009748,-0.000237289
+0.00975,-0.00023729
+0.009752,-0.00023729
+0.009756,-0.000237292
+0.00976,-0.000237293
+0.009764,-0.000237294
+0.009768,-0.000237296
+0.00977,-0.000237297
+0.009772,-0.000237298
+0.009776,-0.000237301
+0.00978,-0.000237304
+0.009784,-0.000237308
+0.009788,-0.000237311
+0.00979,-0.000237313
+0.009792,-0.000237315
+0.009792,-0.000237315
+0.009796,-0.000237318
+0.0098,-0.000237322
+0.0098,-0.000237322
+0.009804,-0.000237325
+0.009804,-0.000237325
+0.009808,-0.000237329
+0.009808,-0.000237329
+0.00981,-0.000237331
+0.009812,-0.000237333
+0.009816,-0.000237338
+0.009816,-0.000237338
+0.00982,-0.000237343
+0.009824,-0.000237348
+0.009828,-0.000237353
+0.009828,-0.000237353
+0.00983,-0.000237355
+0.009832,-0.000237358
+0.009836,-0.000237363
+0.00984,-0.000237367
+0.00984,-0.000237367
+0.009844,-0.000237371
+0.009848,-0.000237376
+0.00985,-0.000237378
+0.009852,-0.00023738
+0.009852,-0.00023738
+0.009856,-0.000237385
+0.00986,-0.00023739
+0.009864,-0.000237394
+0.009868,-0.000237399
+0.00987,-0.000237401
+0.009872,-0.000237403
+0.009876,-0.000237407
+0.00988,-0.000237411
+0.009884,-0.000237414
+0.009888,-0.000237417
+0.009888,-0.000237417
+0.00989,-0.000237418
+0.009892,-0.000237419
+0.009892,-0.000237419
+0.009896,-0.000237421
+0.0099,-0.000237423
+0.009904,-0.000237425
+0.009908,-0.000237427
+0.00991,-0.000237427
+0.009912,-0.000237428
+0.009916,-0.000237429
+0.00992,-0.000237429
+0.009924,-0.000237429
+0.009928,-0.000237428
+0.009928,-0.000237428
+0.00993,-0.000237428
+0.009932,-0.000237427
+0.009936,-0.000237426
+0.00994,-0.000237425
+0.009944,-0.000237423
+0.009948,-0.000237422
+0.00995,-0.000237422
+0.009952,-0.000237421
+0.009956,-0.000237419
+0.00996,-0.000237417
+0.009964,-0.000237415
+0.009968,-0.000237411
+0.00997,-0.00023741
+0.009972,-0.000237408
+0.009976,-0.000237405
+0.00998,-0.000237401
+0.009984,-0.000237398
+0.009984,-0.000237398
+0.009988,-0.000237395
+0.009988,-0.000237395
+0.00999,-0.000237393
+0.009992,-0.000237391
+0.009992,-0.000237391
+0.009996,-0.000237388
+0.01,-0.000237384
+0.01001,-0.000237372
+0.01002,-0.000237361
+0.01003,-0.00023735
+0.01004,-0.000237339
+0.01005,-0.000237328
+0.01006,-0.000237317
+0.01007,-0.000237309
+0.01008,-0.000237303
+0.01009,-0.000237298
+0.0101,-0.000237294
+0.01011,-0.000237293
+0.01012,-0.000237294
+0.01013,-0.000237298
+0.01014,-0.000237301
+0.01015,-0.000237305
+0.01016,-0.000237313
+0.01017,-0.000237321
+0.01018,-0.000237329
+0.01019,-0.000237338
+0.0102,-0.000237349
+0.01021,-0.00023736
+0.01022,-0.00023737
+0.01023,-0.00023738
+0.01024,-0.000237391
+0.01025,-0.000237401
+0.01026,-0.000237408
+0.01027,-0.000237414
+0.01028,-0.000237418
+0.01029,-0.000237421
+0.0103,-0.000237422
+0.01031,-0.00023742
+0.01032,-0.000237417
+0.01033,-0.000237414
+0.01034,-0.000237409
+0.01035,-0.000237402
+0.01036,-0.000237394
+0.01037,-0.000237387
+0.01038,-0.000237378
+0.01039,-0.000237367
+0.0104,-0.000237356
+0.01041,-0.000237347
+0.01042,-0.000237337
+0.01043,-0.000237327
+0.01044,-0.000237318
+0.01045,-0.000237311
+0.01046,-0.000237306
+0.01047,-0.000237302
+0.01048,-0.0002373
+0.01049,-0.000237299
+0.0105,-0.000237302
+0.01051,-0.000237304
+0.01052,-0.000237308
+0.01053,-0.000237313
+0.01054,-0.00023732
+0.01055,-0.000237327
+0.01056,-0.000237335
+0.01057,-0.000237344
+0.01058,-0.000237354
+0.01059,-0.000237364
+0.0106,-0.000237373
+0.01061,-0.000237382
+0.01062,-0.000237391
+0.01063,-0.0002374
+0.01064,-0.000237406
+0.01065,-0.00023741
+0.01066,-0.000237414
+0.01067,-0.000237416
+0.01068,-0.000237416
+0.01069,-0.000237414
+0.0107,-0.000237411
+0.01071,-0.000237408
+0.01072,-0.000237402
+0.01073,-0.000237395
+0.01074,-0.000237388
+0.01075,-0.000237381
+0.01076,-0.000237372
+0.01077,-0.000237362
+0.01078,-0.000237353
+0.01079,-0.000237345
+0.0108,-0.000237336
+0.01081,-0.000237327
+0.01082,-0.00023732
+0.01083,-0.000237314
+0.01084,-0.00023731
+0.01085,-0.000237307
+0.01086,-0.000237305
+0.01087,-0.000237305
+0.01088,-0.000237308
+0.01089,-0.000237311
+0.0109,-0.000237314
+0.01091,-0.000237319
+0.01092,-0.000237326
+0.01093,-0.000237333
+0.01094,-0.00023734
+0.01095,-0.000237349
+0.01096,-0.000237358
+0.01097,-0.000237367
+0.01098,-0.000237375
+0.01099,-0.000237383
+0.011,-0.000237391
+0.01101,-0.000237398
+0.01102,-0.000237403
+0.01103,-0.000237407
+0.01104,-0.00023741
+0.01105,-0.000237411
+0.01106,-0.00023741
+0.01107,-0.000237408
+0.01108,-0.000237405
+0.01109,-0.000237402
+0.0111,-0.000237396
+0.01111,-0.00023739
+0.01112,-0.000237383
+0.01113,-0.000237376
+0.01114,-0.000237368
+0.01115,-0.000237359
+0.01116,-0.000237351
+0.01117,-0.000237343
+0.01118,-0.000237335
+0.01119,-0.000237327
+0.0112,-0.000237321
+0.01121,-0.000237317
+0.01122,-0.000237313
+0.01123,-0.000237311
+0.01124,-0.00023731
+0.01125,-0.000237311
+0.01126,-0.000237313
+0.01127,-0.000237316
+0.01128,-0.00023732
+0.01129,-0.000237325
+0.0113,-0.000237331
+0.01131,-0.000237338
+0.01132,-0.000237345
+0.01133,-0.000237353
+0.01134,-0.000237361
+0.01135,-0.000237369
+0.01136,-0.000237376
+0.01137,-0.000237384
+0.01138,-0.000237391
+0.01139,-0.000237396
+0.0114,-0.0002374
+0.01141,-0.000237403
+0.01142,-0.000237406
+0.01143,-0.000237406
+0.01144,-0.000237405
+0.01145,-0.000237402
+0.01146,-0.0002374
+0.01147,-0.000237396
+0.01148,-0.000237391
+0.01149,-0.000237385
+0.0115,-0.000237378
+0.01151,-0.000237372
+0.01152,-0.000237364
+0.01153,-0.000237356
+0.01154,-0.000237349
+0.01155,-0.000237342
+0.01156,-0.000237335
+0.01157,-0.000237328
+0.01158,-0.000237323
+0.01159,-0.000237319
+0.0116,-0.000237317
+0.01161,-0.000237315
+0.01162,-0.000237314
+0.01163,-0.000237316
+0.01164,-0.000237318
+0.01165,-0.000237321
+0.01166,-0.000237325
+0.01167,-0.00023733
+0.01168,-0.000237336
+0.01169,-0.000237342
+0.0117,-0.000237349
+0.01171,-0.000237356
+0.01172,-0.000237364
+0.01173,-0.000237371
+0.01174,-0.000237377
+0.01175,-0.000237384
+0.01176,-0.00023739
+0.01177,-0.000237395
+0.01178,-0.000237398
+0.01179,-0.0002374
+0.0118,-0.000237402
+0.01181,-0.000237402
+0.01182,-0.0002374
+0.01183,-0.000237398
+0.01184,-0.000237395
+0.01185,-0.000237391
+0.01186,-0.000237386
+0.01187,-0.00023738
+0.01188,-0.000237375
+0.01189,-0.000237368
+0.0119,-0.000237361
+0.01191,-0.000237354
+0.01192,-0.000237347
+0.01193,-0.000237341
+0.01194,-0.000237335
+0.01195,-0.000237329
+0.01196,-0.000237325
+0.01197,-0.000237322
+0.01198,-0.00023732
+0.01199,-0.000237318
+0.012,-0.000237319
+0.01201,-0.000237321
+0.01202,-0.000237323
+0.01203,-0.000237326
+0.01204,-0.00023733
+0.01205,-0.000237335
+0.01206,-0.00023734
+0.01207,-0.000237346
+0.01208,-0.000237352
+0.01209,-0.000237359
+0.0121,-0.000237366
+0.01211,-0.000237372
+0.01212,-0.000237378
+0.01213,-0.000237384
+0.01214,-0.000237389
+0.01215,-0.000237393
+0.01216,-0.000237395
+0.01217,-0.000237397
+0.01218,-0.000237398
+0.01219,-0.000237398
+0.0122,-0.000237396
+0.01221,-0.000237394
+0.01222,-0.000237391
+0.01223,-0.000237387
+0.01224,-0.000237382
+0.01225,-0.000237376
+0.01226,-0.000237371
+0.01227,-0.000237365
+0.01228,-0.000237358
+0.01229,-0.000237352
+0.0123,-0.000237346
+0.01231,-0.00023734
+0.01232,-0.000237335
+0.01233,-0.00023733
+0.01234,-0.000237327
+0.01235,-0.000237324
+0.01236,-0.000237323
+0.01237,-0.000237322
+0.01238,-0.000237323
+0.01239,-0.000237325
+0.0124,-0.000237327
+0.01241,-0.00023733
+0.01242,-0.000237334
+0.01243,-0.000237339
+0.01244,-0.000237344
+0.01245,-0.000237349
+0.01246,-0.000237355
+0.01247,-0.000237361
+0.01248,-0.000237367
+0.01249,-0.000237373
+0.0125,-0.000237378
+0.01251,-0.000237383
+0.01252,-0.000237388
+0.01253,-0.000237391
+0.01254,-0.000237393
+0.01255,-0.000237394
+0.01256,-0.000237395
+0.01257,-0.000237394
+0.01258,-0.000237392
+0.01259,-0.00023739
+0.0126,-0.000237387
+0.01261,-0.000237383
+0.01262,-0.000237378
+0.01263,-0.000237373
+0.01264,-0.000237368
+0.01265,-0.000237362
+0.01266,-0.000237356
+0.01267,-0.000237351
+0.01268,-0.000237345
+0.01269,-0.00023734
+0.0127,-0.000237335
+0.01271,-0.000237331
+0.01272,-0.000237329
+0.01273,-0.000237327
+0.01274,-0.000237326
+0.01275,-0.000237325
+0.01276,-0.000237326
+0.01277,-0.000237328
+0.01278,-0.00023733
+0.01279,-0.000237333
+0.0128,-0.000237338
+0.01281,-0.000237342
+0.01282,-0.000237347
+0.01283,-0.000237352
+0.01284,-0.000237357
+0.01285,-0.000237363
+0.01286,-0.000237368
+0.01287,-0.000237373
+0.01288,-0.000237378
+0.01289,-0.000237383
+0.0129,-0.000237386
+0.01291,-0.000237389
+0.01292,-0.00023739
+0.01293,-0.000237392
+0.01294,-0.000237391
+0.01295,-0.00023739
+0.01296,-0.000237388
+0.01297,-0.000237386
+0.01298,-0.000237383
+0.01299,-0.000237379
+0.013,-0.000237375
+0.01301,-0.00023737
+0.01302,-0.000237365
+0.01303,-0.00023736
+0.01304,-0.000237354
+0.01305,-0.000237349
+0.01306,-0.000237345
+0.01307,-0.00023734
+0.01308,-0.000237336
+0.01309,-0.000237333
+0.0131,-0.000237331
+0.01311,-0.000237329
+0.01312,-0.000237328
+0.01313,-0.000237328
+0.01314,-0.00023733
+0.01315,-0.000237332
+0.01316,-0.000237334
+0.01317,-0.000237337
+0.01318,-0.000237341
+0.01319,-0.000237345
+0.0132,-0.000237349
+0.01321,-0.000237354
+0.01322,-0.00023736
+0.01323,-0.000237365
+0.01324,-0.000237369
+0.01325,-0.000237374
+0.01326,-0.000237378
+0.01327,-0.000237382
+0.01328,-0.000237385
+0.01329,-0.000237387
+0.0133,-0.000237388
+0.01331,-0.000237389
+0.01332,-0.000237388
+0.01333,-0.000237387
+0.01334,-0.000237385
+0.01335,-0.000237383
+0.01336,-0.00023738
+0.01337,-0.000237376
+0.01338,-0.000237372
+0.01339,-0.000237368
+0.0134,-0.000237363
+0.01341,-0.000237358
+0.01342,-0.000237353
+0.01343,-0.000237349
+0.01344,-0.000237345
+0.01345,-0.00023734
+0.01346,-0.000237337
+0.01347,-0.000237334
+0.01348,-0.000237333
+0.01349,-0.000237331
+0.0135,-0.000237331
+0.01351,-0.000237331
+0.01352,-0.000237333
+0.01353,-0.000237335
+0.01354,-0.000237337
+0.01355,-0.00023734
+0.01356,-0.000237344
+0.01357,-0.000237348
+0.01358,-0.000237352
+0.01359,-0.000237356
+0.0136,-0.000237361
+0.01361,-0.000237366
+0.01362,-0.00023737
+0.01363,-0.000237374
+0.01364,-0.000237378
+0.01365,-0.000237381
+0.01366,-0.000237383
+0.01367,-0.000237385
+0.01368,-0.000237386
+0.01369,-0.000237386
+0.0137,-0.000237386
+0.01371,-0.000237384
+0.01372,-0.000237382
+0.01373,-0.00023738
+0.01374,-0.000237377
+0.01375,-0.000237373
+0.01376,-0.000237369
+0.01377,-0.000237366
+0.01378,-0.000237361
+0.01379,-0.000237356
+0.0138,-0.000237352
+0.01381,-0.000237348
+0.01382,-0.000237344
+0.01383,-0.000237341
+0.01384,-0.000237338
+0.01385,-0.000237336
+0.01386,-0.000237334
+0.01387,-0.000237333
+0.01388,-0.000237333
+0.01389,-0.000237334
+0.0139,-0.000237336
+0.01391,-0.000237337
+0.01392,-0.00023734
+0.01393,-0.000237343
+0.01394,-0.000237346
+0.01395,-0.00023735
+0.01396,-0.000237354
+0.01397,-0.000237358
+0.01398,-0.000237363
+0.01399,-0.000237367
+0.014,-0.00023737
+0.01401,-0.000237374
+0.01402,-0.000237377
+0.01403,-0.00023738
+0.01404,-0.000237382
+0.01405,-0.000237383
+0.01406,-0.000237384
+0.01407,-0.000237384
+0.01408,-0.000237383
+0.01409,-0.000237382
+0.0141,-0.00023738
+0.01411,-0.000237377
+0.01412,-0.000237374
+0.01413,-0.000237371
+0.01414,-0.000237367
+0.01415,-0.000237364
+0.01416,-0.000237359
+0.01417,-0.000237355
+0.01418,-0.000237351
+0.01419,-0.000237348
+0.0142,-0.000237344
+0.01421,-0.000237341
+0.01422,-0.000237339
+0.01423,-0.000237337
+0.01424,-0.000237336
+0.01425,-0.000237335
+0.01426,-0.000237336
+0.01427,-0.000237337
+0.01428,-0.000237338
+0.01429,-0.00023734
+0.0143,-0.000237342
+0.01431,-0.000237345
+0.01432,-0.000237349
+0.01433,-0.000237352
+0.01434,-0.000237356
+0.01435,-0.00023736
+0.01436,-0.000237364
+0.01437,-0.000237367
+0.01438,-0.000237371
+0.01439,-0.000237374
+0.0144,-0.000237377
+0.01441,-0.000237379
+0.01442,-0.00023738
+0.01443,-0.000237381
+0.01444,-0.000237382
+0.01445,-0.000237382
+0.01446,-0.000237381
+0.01447,-0.000237379
+0.01448,-0.000237377
+0.01449,-0.000237375
+0.0145,-0.000237372
+0.01451,-0.000237369
+0.01452,-0.000237365
+0.01453,-0.000237362
+0.01454,-0.000237358
+0.01455,-0.000237354
+0.01456,-0.000237351
+0.01457,-0.000237348
+0.01458,-0.000237345
+0.01459,-0.000237342
+0.0146,-0.00023734
+0.01461,-0.000237339
+0.01462,-0.000237338
+0.01463,-0.000237337
+0.01464,-0.000237338
+0.01465,-0.000237339
+0.01466,-0.00023734
+0.01467,-0.000237342
+0.01468,-0.000237345
+0.01469,-0.000237348
+0.0147,-0.000237351
+0.01471,-0.000237354
+0.01472,-0.000237357
+0.01473,-0.000237361
+0.01474,-0.000237365
+0.01475,-0.000237368
+0.01476,-0.000237371
+0.01477,-0.000237374
+0.01478,-0.000237376
+0.01479,-0.000237378
+0.0148,-0.000237379
+0.01481,-0.00023738
+0.01482,-0.00023738
+0.01483,-0.000237379
+0.01484,-0.000237378
+0.01485,-0.000237377
+0.01486,-0.000237375
+0.01487,-0.000237373
+0.01488,-0.00023737
+0.01489,-0.000237367
+0.0149,-0.000237364
+0.01491,-0.00023736
+0.01492,-0.000237357
+0.01493,-0.000237354
+0.01494,-0.000237351
+0.01495,-0.000237348
+0.01496,-0.000237345
+0.01497,-0.000237343
+0.01498,-0.000237341
+0.01499,-0.00023734
+0.015,-0.000237339
+0.01501,-0.000237339
+0.01502,-0.00023734
+0.01503,-0.000237341
+0.01504,-0.000237342
+0.01505,-0.000237344
+0.01506,-0.000237347
+0.01507,-0.00023735
+0.01508,-0.000237352
+0.01509,-0.000237355
+0.0151,-0.000237359
+0.01511,-0.000237362
+0.01512,-0.000237365
+0.01513,-0.000237368
+0.01514,-0.000237371
+0.01515,-0.000237373
+0.01516,-0.000237375
+0.01517,-0.000237377
+0.01518,-0.000237378
+0.01519,-0.000237378
+0.0152,-0.000237378
+0.01521,-0.000237377
+0.01522,-0.000237376
+0.01523,-0.000237375
+0.01524,-0.000237373
+0.01525,-0.000237371
+0.01526,-0.000237368
+0.01527,-0.000237365
+0.01528,-0.000237362
+0.01529,-0.000237359
+0.0153,-0.000237356
+0.01531,-0.000237353
+0.01532,-0.00023735
+0.01533,-0.000237348
+0.01534,-0.000237345
+0.01535,-0.000237343
+0.01536,-0.000237342
+0.01537,-0.000237341
+0.01538,-0.000237341
+0.01539,-0.000237341
+0.0154,-0.000237342
+0.01541,-0.000237343
+0.01542,-0.000237344
+0.01543,-0.000237346
+0.01544,-0.000237349
+0.01545,-0.000237351
+0.01546,-0.000237354
+0.01547,-0.000237357
+0.01548,-0.00023736
+0.01549,-0.000237363
+0.0155,-0.000237366
+0.01551,-0.000237368
+0.01552,-0.000237371
+0.01553,-0.000237373
+0.01554,-0.000237375
+0.01555,-0.000237376
+0.01556,-0.000237376
+0.01557,-0.000237377
+0.01558,-0.000237376
+0.01559,-0.000237376
+0.0156,-0.000237375
+0.01561,-0.000237373
+0.01562,-0.000237371
+0.01563,-0.000237369
+0.01564,-0.000237366
+0.01565,-0.000237364
+0.01566,-0.000237361
+0.01567,-0.000237358
+0.01568,-0.000237355
+0.01569,-0.000237353
+0.0157,-0.00023735
+0.01571,-0.000237348
+0.01572,-0.000237346
+0.01573,-0.000237344
+0.01574,-0.000237343
+0.01575,-0.000237343
+0.01576,-0.000237342
+0.01577,-0.000237343
+0.01578,-0.000237344
+0.01579,-0.000237345
+0.0158,-0.000237346
+0.01581,-0.000237348
+0.01582,-0.00023735
+0.01583,-0.000237353
+0.01584,-0.000237355
+0.01585,-0.000237358
+0.01586,-0.000237361
+0.01587,-0.000237363
+0.01588,-0.000237366
+0.01589,-0.000237368
+0.0159,-0.000237371
+0.01591,-0.000237372
+0.01592,-0.000237374
+0.01593,-0.000237375
+0.01594,-0.000237375
+0.01595,-0.000237375
+0.01596,-0.000237375
+0.01597,-0.000237374
+0.01598,-0.000237373
+0.01599,-0.000237371
+0.016,-0.00023737
+0.01601,-0.000237367
+0.01602,-0.000237365
+0.01603,-0.000237363
+0.01604,-0.00023736
+0.01605,-0.000237357
+0.01606,-0.000237355
+0.01607,-0.000237352
+0.01608,-0.00023735
+0.01609,-0.000237348
+0.0161,-0.000237346
+0.01611,-0.000237345
+0.01612,-0.000237344
+0.01613,-0.000237344
+0.01614,-0.000237344
+0.01615,-0.000237344
+0.01616,-0.000237345
+0.01617,-0.000237346
+0.01618,-0.000237348
+0.01619,-0.00023735
+0.0162,-0.000237352
+0.01621,-0.000237354
+0.01622,-0.000237356
+0.01623,-0.000237359
+0.01624,-0.000237362
+0.01625,-0.000237364
+0.01626,-0.000237366
+0.01627,-0.000237368
+0.01628,-0.00023737
+0.01629,-0.000237372
+0.0163,-0.000237373
+0.01631,-0.000237374
+0.01632,-0.000237374
+0.01633,-0.000237374
+0.01634,-0.000237373
+0.01635,-0.000237372
+0.01636,-0.000237371
+0.01637,-0.00023737
+0.01638,-0.000237368
+0.01639,-0.000237366
+0.0164,-0.000237364
+0.01641,-0.000237361
+0.01642,-0.000237359
+0.01643,-0.000237357
+0.01644,-0.000237354
+0.01645,-0.000237352
+0.01646,-0.00023735
+0.01647,-0.000237348
+0.01648,-0.000237347
+0.01649,-0.000237346
+0.0165,-0.000237345
+0.01651,-0.000237345
+0.01652,-0.000237345
+0.01653,-0.000237346
+0.01654,-0.000237347
+0.01655,-0.000237348
+0.01656,-0.000237349
+0.01657,-0.000237351
+0.01658,-0.000237353
+0.01659,-0.000237355
+0.0166,-0.000237357
+0.01661,-0.00023736
+0.01662,-0.000237362
+0.01663,-0.000237364
+0.01664,-0.000237366
+0.01665,-0.000237368
+0.01666,-0.00023737
+0.01667,-0.000237371
+0.01668,-0.000237372
+0.01669,-0.000237373
+0.0167,-0.000237373
+0.01671,-0.000237373
+0.01672,-0.000237372
+0.01673,-0.000237371
+0.01674,-0.00023737
+0.01675,-0.000237368
+0.01676,-0.000237367
+0.01677,-0.000237365
+0.01678,-0.000237363
+0.01679,-0.000237361
+0.0168,-0.000237358
+0.01681,-0.000237356
+0.01682,-0.000237354
+0.01683,-0.000237352
+0.01684,-0.00023735
+0.01685,-0.000237349
+0.01686,-0.000237348
+0.01687,-0.000237347
+0.01688,-0.000237346
+0.01689,-0.000237346
+0.0169,-0.000237346
+0.01691,-0.000237347
+0.01692,-0.000237348
+0.01693,-0.000237349
+0.01694,-0.000237351
+0.01695,-0.000237352
+0.01696,-0.000237354
+0.01697,-0.000237356
+0.01698,-0.000237358
+0.01699,-0.000237361
+0.017,-0.000237363
+0.01701,-0.000237365
+0.01702,-0.000237366
+0.01703,-0.000237368
+0.01704,-0.000237369
+0.01705,-0.00023737
+0.01706,-0.000237371
+0.01707,-0.000237372
+0.01708,-0.000237372
+0.01709,-0.000237371
+0.0171,-0.000237371
+0.01711,-0.00023737
+0.01712,-0.000237369
+0.01713,-0.000237367
+0.01714,-0.000237365
+0.01715,-0.000237364
+0.01716,-0.000237362
+0.01717,-0.00023736
+0.01718,-0.000237358
+0.01719,-0.000237356
+0.0172,-0.000237354
+0.01721,-0.000237352
+0.01722,-0.000237351
+0.01723,-0.000237349
+0.01724,-0.000237348
+0.01725,-0.000237348
+0.01726,-0.000237347
+0.01727,-0.000237347
+0.01728,-0.000237348
+0.01729,-0.000237348
+0.0173,-0.000237349
+0.01731,-0.00023735
+0.01732,-0.000237352
+0.01733,-0.000237354
+0.01734,-0.000237355
+0.01735,-0.000237357
+0.01736,-0.000237359
+0.01737,-0.000237361
+0.01738,-0.000237363
+0.01739,-0.000237365
+0.0174,-0.000237366
+0.01741,-0.000237368
+0.01742,-0.000237369
+0.01743,-0.00023737
+0.01744,-0.00023737
+0.01745,-0.000237371
+0.01746,-0.000237371
+0.01747,-0.00023737
+0.01748,-0.00023737
+0.01749,-0.000237369
+0.0175,-0.000237367
+0.01751,-0.000237366
+0.01752,-0.000237364
+0.01753,-0.000237363
+0.01754,-0.000237361
+0.01755,-0.000237359
+0.01756,-0.000237357
+0.01757,-0.000237355
+0.01758,-0.000237354
+0.01759,-0.000237352
+0.0176,-0.000237351
+0.01761,-0.00023735
+0.01762,-0.000237349
+0.01763,-0.000237348
+0.01764,-0.000237348
+0.01765,-0.000237348
+0.01766,-0.000237349
+0.01767,-0.000237349
+0.01768,-0.00023735
+0.01769,-0.000237352
+0.0177,-0.000237353
+0.01771,-0.000237355
+0.01772,-0.000237356
+0.01773,-0.000237358
+0.01774,-0.00023736
+0.01775,-0.000237362
+0.01776,-0.000237363
+0.01777,-0.000237365
+0.01778,-0.000237366
+0.01779,-0.000237368
+0.0178,-0.000237368
+0.01781,-0.000237369
+0.01782,-0.00023737
+0.01783,-0.00023737
+0.01784,-0.00023737
+0.01785,-0.000237369
+0.01786,-0.000237368
+0.01787,-0.000237368
+0.01788,-0.000237366
+0.01789,-0.000237365
+0.0179,-0.000237363
+0.01791,-0.000237362
+0.01792,-0.00023736
+0.01793,-0.000237358
+0.01794,-0.000237357
+0.01795,-0.000237355
+0.01796,-0.000237354
+0.01797,-0.000237352
+0.01798,-0.000237351
+0.01799,-0.00023735
+0.018,-0.00023735
+0.01801,-0.000237349
+0.01802,-0.000237349
+0.01803,-0.000237349
+0.01804,-0.00023735
+0.01805,-0.000237351
+0.01806,-0.000237351
+0.01807,-0.000237353
+0.01808,-0.000237354
+0.01809,-0.000237355
+0.0181,-0.000237357
+0.01811,-0.000237359
+0.01812,-0.00023736
+0.01813,-0.000237362
+0.01814,-0.000237363
+0.01815,-0.000237365
+0.01816,-0.000237366
+0.01817,-0.000237367
+0.01818,-0.000237368
+0.01819,-0.000237369
+0.0182,-0.000237369
+0.01821,-0.000237369
+0.01822,-0.000237369
+0.01823,-0.000237368
+0.01824,-0.000237367
+0.01825,-0.000237367
+0.01826,-0.000237365
+0.01827,-0.000237364
+0.01828,-0.000237363
+0.01829,-0.000237361
+0.0183,-0.00023736
+0.01831,-0.000237358
+0.01832,-0.000237356
+0.01833,-0.000237355
+0.01834,-0.000237354
+0.01835,-0.000237352
+0.01836,-0.000237351
+0.01837,-0.000237351
+0.01838,-0.00023735
+0.01839,-0.00023735
+0.0184,-0.00023735
+0.01841,-0.00023735
+0.01842,-0.000237351
+0.01843,-0.000237351
+0.01844,-0.000237352
+0.01845,-0.000237354
+0.01846,-0.000237355
+0.01847,-0.000237356
+0.01848,-0.000237358
+0.01849,-0.000237359
+0.0185,-0.000237361
+0.01851,-0.000237362
+0.01852,-0.000237364
+0.01853,-0.000237365
+0.01854,-0.000237366
+0.01855,-0.000237367
+0.01856,-0.000237367
+0.01857,-0.000237368
+0.01858,-0.000237368
+0.01859,-0.000237368
+0.0186,-0.000237368
+0.01861,-0.000237367
+0.01862,-0.000237366
+0.01863,-0.000237366
+0.01864,-0.000237364
+0.01865,-0.000237363
+0.01866,-0.000237362
+0.01867,-0.00023736
+0.01868,-0.000237359
+0.01869,-0.000237357
+0.0187,-0.000237356
+0.01871,-0.000237355
+0.01872,-0.000237354
+0.01873,-0.000237353
+0.01874,-0.000237352
+0.01875,-0.000237351
+0.01876,-0.000237351
+0.01877,-0.000237351
+0.01878,-0.000237351
+0.01879,-0.000237351
+0.0188,-0.000237352
+0.01881,-0.000237352
+0.01882,-0.000237353
+0.01883,-0.000237354
+0.01884,-0.000237356
+0.01885,-0.000237357
+0.01886,-0.000237358
+0.01887,-0.00023736
+0.01888,-0.000237361
+0.01889,-0.000237362
+0.0189,-0.000237364
+0.01891,-0.000237365
+0.01892,-0.000237366
+0.01893,-0.000237366
+0.01894,-0.000237367
+0.01895,-0.000237367
+0.01896,-0.000237367
+0.01897,-0.000237367
+0.01898,-0.000237367
+0.01899,-0.000237366
+0.019,-0.000237366
+0.01901,-0.000237365
+0.01902,-0.000237364
+0.01903,-0.000237362
+0.01904,-0.000237361
+0.01905,-0.00023736
+0.01906,-0.000237359
+0.01907,-0.000237357
+0.01908,-0.000237356
+0.01909,-0.000237355
+0.0191,-0.000237354
+0.01911,-0.000237353
+0.01912,-0.000237352
+0.01913,-0.000237352
+0.01914,-0.000237351
+0.01915,-0.000237351
+0.01916,-0.000237352
+0.01917,-0.000237352
+0.01918,-0.000237352
+0.01919,-0.000237353
+0.0192,-0.000237354
+0.01921,-0.000237355
+0.01922,-0.000237356
+0.01923,-0.000237358
+0.01924,-0.000237359
+0.01925,-0.00023736
+0.01926,-0.000237361
+0.01927,-0.000237363
+0.01928,-0.000237364
+0.01929,-0.000237365
+0.0193,-0.000237365
+0.01931,-0.000237366
+0.01932,-0.000237366
+0.01933,-0.000237367
+0.01934,-0.000237367
+0.01935,-0.000237367
+0.01936,-0.000237366
+0.01937,-0.000237366
+0.01938,-0.000237365
+0.01939,-0.000237364
+0.0194,-0.000237363
+0.01941,-0.000237362
+0.01942,-0.000237361
+0.01943,-0.000237359
+0.01944,-0.000237358
+0.01945,-0.000237357
+0.01946,-0.000237356
+0.01947,-0.000237355
+0.01948,-0.000237354
+0.01949,-0.000237353
+0.0195,-0.000237353
+0.01951,-0.000237352
+0.01952,-0.000237352
+0.01953,-0.000237352
+0.01954,-0.000237352
+0.01955,-0.000237353
+0.01956,-0.000237353
+0.01957,-0.000237354
+0.01958,-0.000237355
+0.01959,-0.000237356
+0.0196,-0.000237357
+0.01961,-0.000237358
+0.01962,-0.000237359
+0.01963,-0.00023736
+0.01964,-0.000237362
+0.01965,-0.000237363
+0.01966,-0.000237364
+0.01967,-0.000237364
+0.01968,-0.000237365
+0.01969,-0.000237366
+0.0197,-0.000237366
+0.01971,-0.000237366
+0.01972,-0.000237366
+0.01973,-0.000237366
+0.01974,-0.000237365
+0.01975,-0.000237365
+0.01976,-0.000237364
+0.01977,-0.000237363
+0.01978,-0.000237362
+0.01979,-0.000237361
+0.0198,-0.00023736
+0.01981,-0.000237359
+0.01982,-0.000237358
+0.01983,-0.000237357
+0.01984,-0.000237356
+0.01985,-0.000237355
+0.01986,-0.000237354
+0.01987,-0.000237353
+0.01988,-0.000237353
+0.01989,-0.000237353
+0.0199,-0.000237353
+0.01991,-0.000237353
+0.01992,-0.000237353
+0.01993,-0.000237353
+0.01994,-0.000237354
+0.01995,-0.000237355
+0.01996,-0.000237355
+0.01997,-0.000237356
+0.01998,-0.000237357
+0.01999,-0.000237359
+0.02,-0.00023736
+0.02001,-0.000237361
+0.02002,-0.000237362
+0.02003,-0.000237363
+0.02004,-0.000237364
+0.02005,-0.000237364
+0.02006,-0.000237365
+0.02007,-0.000237365
+0.02008,-0.000237366
+0.02009,-0.000237366
+0.0201,-0.000237366
+0.02011,-0.000237365
+0.02012,-0.000237365
+0.02013,-0.000237364
+0.02014,-0.000237363
+0.02015,-0.000237363
+0.02016,-0.000237362
+0.02017,-0.000237361
+0.02018,-0.00023736
+0.02019,-0.000237359
+0.0202,-0.000237358
+0.02021,-0.000237357
+0.02022,-0.000237356
+0.02023,-0.000237355
+0.02024,-0.000237354
+0.02025,-0.000237354
+0.02026,-0.000237353
+0.02027,-0.000237353
+0.02028,-0.000237353
+0.02029,-0.000237353
+0.0203,-0.000237354
+0.02031,-0.000237354
+0.02032,-0.000237355
+0.02033,-0.000237355
+0.02034,-0.000237356
+0.02035,-0.000237357
+0.02036,-0.000237358
+0.02037,-0.000237359
+0.02038,-0.00023736
+0.02039,-0.000237361
+0.0204,-0.000237362
+0.02041,-0.000237363
+0.02042,-0.000237363
+0.02043,-0.000237364
+0.02044,-0.000237365
+0.02045,-0.000237365
+0.02046,-0.000237365
+0.02047,-0.000237365
+0.02048,-0.000237365
+0.02049,-0.000237365
+0.0205,-0.000237364
+0.02051,-0.000237364
+0.02052,-0.000237363
+0.02053,-0.000237362
+0.02054,-0.000237361
+0.02055,-0.00023736
+0.02056,-0.000237359
+0.02057,-0.000237358
+0.02058,-0.000237357
+0.02059,-0.000237357
+0.0206,-0.000237356
+0.02061,-0.000237355
+0.02062,-0.000237354
+0.02063,-0.000237354
+0.02064,-0.000237354
+0.02065,-0.000237354
+0.02066,-0.000237354
+0.02067,-0.000237354
+0.02068,-0.000237354
+0.02069,-0.000237355
+0.0207,-0.000237355
+0.02071,-0.000237356
+0.02072,-0.000237357
+0.02073,-0.000237357
+0.02074,-0.000237358
+0.02075,-0.000237359
+0.02076,-0.00023736
+0.02077,-0.000237361
+0.02078,-0.000237362
+0.02079,-0.000237363
+0.0208,-0.000237363
+0.02081,-0.000237364
+0.02082,-0.000237364
+0.02083,-0.000237365
+0.02084,-0.000237365
+0.02085,-0.000237365
+0.02086,-0.000237364
+0.02087,-0.000237364
+0.02088,-0.000237364
+0.02089,-0.000237363
+0.0209,-0.000237362
+0.02091,-0.000237362
+0.02092,-0.000237361
+0.02093,-0.00023736
+0.02094,-0.000237359
+0.02095,-0.000237358
+0.02096,-0.000237357
+0.02097,-0.000237356
+0.02098,-0.000237356
+0.02099,-0.000237355
+0.021,-0.000237355
+0.02101,-0.000237354
+0.02102,-0.000237354
+0.02103,-0.000237354
+0.02104,-0.000237354
+0.02105,-0.000237354
+0.02106,-0.000237355
+0.02107,-0.000237355
+0.02108,-0.000237356
+0.02109,-0.000237356
+0.0211,-0.000237357
+0.02111,-0.000237358
+0.02112,-0.000237359
+0.02113,-0.00023736
+0.02114,-0.00023736
+0.02115,-0.000237361
+0.02116,-0.000237362
+0.02117,-0.000237363
+0.02118,-0.000237363
+0.02119,-0.000237364
+0.0212,-0.000237364
+0.02121,-0.000237364
+0.02122,-0.000237364
+0.02123,-0.000237364
+0.02124,-0.000237364
+0.02125,-0.000237364
+0.02126,-0.000237363
+0.02127,-0.000237363
+0.02128,-0.000237362
+0.02129,-0.000237361
+0.0213,-0.00023736
+0.02131,-0.00023736
+0.02132,-0.000237359
+0.02133,-0.000237358
+0.02134,-0.000237357
+0.02135,-0.000237356
+0.02136,-0.000237356
+0.02137,-0.000237355
+0.02138,-0.000237355
+0.02139,-0.000237355
+0.0214,-0.000237354
+0.02141,-0.000237354
+0.02142,-0.000237355
+0.02143,-0.000237355
+0.02144,-0.000237355
+0.02145,-0.000237356
+0.02146,-0.000237356
+0.02147,-0.000237357
+0.02148,-0.000237357
+0.02149,-0.000237358
+0.0215,-0.000237359
+0.02151,-0.00023736
+0.02152,-0.000237361
+0.02153,-0.000237361
+0.02154,-0.000237362
+0.02155,-0.000237363
+0.02156,-0.000237363
+0.02157,-0.000237363
+0.02158,-0.000237364
+0.02159,-0.000237364
+0.0216,-0.000237364
+0.02161,-0.000237364
+0.02162,-0.000237363
+0.02163,-0.000237363
+0.02164,-0.000237363
+0.02165,-0.000237362
+0.02166,-0.000237361
+0.02167,-0.000237361
+0.02168,-0.00023736
+0.02169,-0.000237359
+0.0217,-0.000237359
+0.02171,-0.000237358
+0.02172,-0.000237357
+0.02173,-0.000237356
+0.02174,-0.000237356
+0.02175,-0.000237355
+0.02176,-0.000237355
+0.02177,-0.000237355
+0.02178,-0.000237355
+0.02179,-0.000237355
+0.0218,-0.000237355
+0.02181,-0.000237355
+0.02182,-0.000237356
+0.02183,-0.000237356
+0.02184,-0.000237357
+0.02185,-0.000237357
+0.02186,-0.000237358
+0.02187,-0.000237359
+0.02188,-0.000237359
+0.02189,-0.00023736
+0.0219,-0.000237361
+0.02191,-0.000237361
+0.02192,-0.000237362
+0.02193,-0.000237362
+0.02194,-0.000237363
+0.02195,-0.000237363
+0.02196,-0.000237363
+0.02197,-0.000237363
+0.02198,-0.000237363
+0.02199,-0.000237363
+0.022,-0.000237363
+0.02201,-0.000237363
+0.02202,-0.000237362
+0.02203,-0.000237362
+0.02204,-0.000237361
+0.02205,-0.00023736
+0.02206,-0.00023736
+0.02207,-0.000237359
+0.02208,-0.000237358
+0.02209,-0.000237358
+0.0221,-0.000237357
+0.02211,-0.000237357
+0.02212,-0.000237356
+0.02213,-0.000237356
+0.02214,-0.000237355
+0.02215,-0.000237355
+0.02216,-0.000237355
+0.02217,-0.000237355
+0.02218,-0.000237355
+0.02219,-0.000237356
+0.0222,-0.000237356
+0.02221,-0.000237356
+0.02222,-0.000237357
+0.02223,-0.000237358
+0.02224,-0.000237358
+0.02225,-0.000237359
+0.02226,-0.00023736
+0.02227,-0.00023736
+0.02228,-0.000237361
+0.02229,-0.000237361
+0.0223,-0.000237362
+0.02231,-0.000237362
+0.02232,-0.000237363
+0.02233,-0.000237363
+0.02234,-0.000237363
+0.02235,-0.000237363
+0.02236,-0.000237363
+0.02237,-0.000237363
+0.02238,-0.000237363
+0.02239,-0.000237362
+0.0224,-0.000237362
+0.02241,-0.000237361
+0.02242,-0.000237361
+0.02243,-0.00023736
+0.02244,-0.000237359
+0.02245,-0.000237359
+0.02246,-0.000237358
+0.02247,-0.000237358
+0.02248,-0.000237357
+0.02249,-0.000237357
+0.0225,-0.000237356
+0.02251,-0.000237356
+0.02252,-0.000237356
+0.02253,-0.000237355
+0.02254,-0.000237355
+0.02255,-0.000237356
+0.02256,-0.000237356
+0.02257,-0.000237356
+0.02258,-0.000237356
+0.02259,-0.000237357
+0.0226,-0.000237357
+0.02261,-0.000237358
+0.02262,-0.000237358
+0.02263,-0.000237359
+0.02264,-0.00023736
+0.02265,-0.00023736
+0.02266,-0.000237361
+0.02267,-0.000237361
+0.02268,-0.000237362
+0.02269,-0.000237362
+0.0227,-0.000237363
+0.02271,-0.000237363
+0.02272,-0.000237363
+0.02273,-0.000237363
+0.02274,-0.000237363
+0.02275,-0.000237363
+0.02276,-0.000237362
+0.02277,-0.000237362
+0.02278,-0.000237361
+0.02279,-0.000237361
+0.0228,-0.00023736
+0.02281,-0.00023736
+0.02282,-0.000237359
+0.02283,-0.000237359
+0.02284,-0.000237358
+0.02285,-0.000237358
+0.02286,-0.000237357
+0.02287,-0.000237357
+0.02288,-0.000237356
+0.02289,-0.000237356
+0.0229,-0.000237356
+0.02291,-0.000237356
+0.02292,-0.000237356
+0.02293,-0.000237356
+0.02294,-0.000237356
+0.02295,-0.000237356
+0.02296,-0.000237357
+0.02297,-0.000237357
+0.02298,-0.000237358
+0.02299,-0.000237358
+0.023,-0.000237359
+0.02301,-0.000237359
+0.02302,-0.00023736
+0.02303,-0.00023736
+0.02304,-0.000237361
+0.02305,-0.000237361
+0.02306,-0.000237362
+0.02307,-0.000237362
+0.02308,-0.000237362
+0.02309,-0.000237362
+0.0231,-0.000237363
+0.02311,-0.000237363
+0.02312,-0.000237362
+0.02313,-0.000237362
+0.02314,-0.000237362
+0.02315,-0.000237362
+0.02316,-0.000237361
+0.02317,-0.000237361
+0.02318,-0.00023736
+0.02319,-0.00023736
+0.0232,-0.000237359
+0.02321,-0.000237359
+0.02322,-0.000237358
+0.02323,-0.000237358
+0.02324,-0.000237357
+0.02325,-0.000237357
+0.02326,-0.000237356
+0.02327,-0.000237356
+0.02328,-0.000237356
+0.02329,-0.000237356
+0.0233,-0.000237356
+0.02331,-0.000237356
+0.02332,-0.000237356
+0.02333,-0.000237357
+0.02334,-0.000237357
+0.02335,-0.000237357
+0.02336,-0.000237358
+0.02337,-0.000237358
+0.02338,-0.000237359
+0.02339,-0.000237359
+0.0234,-0.00023736
+0.02341,-0.00023736
+0.02342,-0.000237361
+0.02343,-0.000237361
+0.02344,-0.000237362
+0.02345,-0.000237362
+0.02346,-0.000237362
+0.02347,-0.000237362
+0.02348,-0.000237362
+0.02349,-0.000237362
+0.0235,-0.000237362
+0.02351,-0.000237362
+0.02352,-0.000237362
+0.02353,-0.000237361
+0.02354,-0.000237361
+0.02355,-0.00023736
+0.02356,-0.00023736
+0.02357,-0.000237359
+0.02358,-0.000237359
+0.02359,-0.000237358
+0.0236,-0.000237358
+0.02361,-0.000237358
+0.02362,-0.000237357
+0.02363,-0.000237357
+0.02364,-0.000237357
+0.02365,-0.000237356
+0.02366,-0.000237356
+0.02367,-0.000237356
+0.02368,-0.000237356
+0.02369,-0.000237356
+0.0237,-0.000237357
+0.02371,-0.000237357
+0.02372,-0.000237357
+0.02373,-0.000237358
+0.02374,-0.000237358
+0.02375,-0.000237359
+0.02376,-0.000237359
+0.02377,-0.00023736
+0.02378,-0.00023736
+0.02379,-0.000237361
+0.0238,-0.000237361
+0.02381,-0.000237361
+0.02382,-0.000237362
+0.02383,-0.000237362
+0.02384,-0.000237362
+0.02385,-0.000237362
+0.02386,-0.000237362
+0.02387,-0.000237362
+0.02388,-0.000237362
+0.02389,-0.000237362
+0.0239,-0.000237361
+0.02391,-0.000237361
+0.02392,-0.000237361
+0.02393,-0.00023736
+0.02394,-0.00023736
+0.02395,-0.000237359
+0.02396,-0.000237359
+0.02397,-0.000237358
+0.02398,-0.000237358
+0.02399,-0.000237358
+0.024,-0.000237357
+0.02401,-0.000237357
+0.02402,-0.000237357
+0.02403,-0.000237357
+0.02404,-0.000237356
+0.02405,-0.000237357
+0.02406,-0.000237357
+0.02407,-0.000237357
+0.02408,-0.000237357
+0.02409,-0.000237357
+0.0241,-0.000237358
+0.02411,-0.000237358
+0.02412,-0.000237358
+0.02413,-0.000237359
+0.02414,-0.000237359
+0.02415,-0.00023736
+0.02416,-0.00023736
+0.02417,-0.000237361
+0.02418,-0.000237361
+0.02419,-0.000237361
+0.0242,-0.000237361
+0.02421,-0.000237362
+0.02422,-0.000237362
+0.02423,-0.000237362
+0.02424,-0.000237362
+0.02425,-0.000237362
+0.02426,-0.000237362
+0.02427,-0.000237361
+0.02428,-0.000237361
+0.02429,-0.000237361
+0.0243,-0.00023736
+0.02431,-0.00023736
+0.02432,-0.00023736
+0.02433,-0.000237359
+0.02434,-0.000237359
+0.02435,-0.000237358
+0.02436,-0.000237358
+0.02437,-0.000237358
+0.02438,-0.000237357
+0.02439,-0.000237357
+0.0244,-0.000237357
+0.02441,-0.000237357
+0.02442,-0.000237357
+0.02443,-0.000237357
+0.02444,-0.000237357
+0.02445,-0.000237357
+0.02446,-0.000237357
+0.02447,-0.000237358
+0.02448,-0.000237358
+0.02449,-0.000237358
+0.0245,-0.000237359
+0.02451,-0.000237359
+0.02452,-0.000237359
+0.02453,-0.00023736
+0.02454,-0.00023736
+0.02455,-0.000237361
+0.02456,-0.000237361
+0.02457,-0.000237361
+0.02458,-0.000237361
+0.02459,-0.000237362
+0.0246,-0.000237362
+0.02461,-0.000237362
+0.02462,-0.000237362
+0.02463,-0.000237361
+0.02464,-0.000237361
+0.02465,-0.000237361
+0.02466,-0.000237361
+0.02467,-0.00023736
+0.02468,-0.00023736
+0.02469,-0.00023736
+0.0247,-0.000237359
+0.02471,-0.000237359
+0.02472,-0.000237359
+0.02473,-0.000237358
+0.02474,-0.000237358
+0.02475,-0.000237358
+0.02476,-0.000237357
+0.02477,-0.000237357
+0.02478,-0.000237357
+0.02479,-0.000237357
+0.0248,-0.000237357
+0.02481,-0.000237357
+0.02482,-0.000237357
+0.02483,-0.000237357
+0.02484,-0.000237357
+0.02485,-0.000237358
+0.02486,-0.000237358
+0.02487,-0.000237358
+0.02488,-0.000237359
+0.02489,-0.000237359
+0.0249,-0.00023736
+0.02491,-0.00023736
+0.02492,-0.00023736
+0.02493,-0.000237361
+0.02494,-0.000237361
+0.02495,-0.000237361
+0.02496,-0.000237361
+0.02497,-0.000237361
+0.02498,-0.000237361
+0.02499,-0.000237361
+0.025,-0.000237361
+0.02501,-0.000237361
+0.02502,-0.000237361
+0.02503,-0.000237361
+0.02504,-0.000237361
+0.02505,-0.00023736
+0.02506,-0.00023736
+0.02507,-0.00023736
+0.02508,-0.000237359
+0.02509,-0.000237359
+0.0251,-0.000237359
+0.02511,-0.000237358
+0.02512,-0.000237358
+0.02513,-0.000237358
+0.02514,-0.000237357
+0.02515,-0.000237357
+0.02516,-0.000237357
+0.02517,-0.000237357
+0.02518,-0.000237357
+0.02519,-0.000237357
+0.0252,-0.000237357
+0.02521,-0.000237357
+0.02522,-0.000237358
+0.02523,-0.000237358
+0.02524,-0.000237358
+0.02525,-0.000237359
+0.02526,-0.000237359
+0.02527,-0.000237359
+0.02528,-0.00023736
+0.02529,-0.00023736
+0.0253,-0.00023736
+0.02531,-0.000237361
+0.02532,-0.000237361
+0.02533,-0.000237361
+0.02534,-0.000237361
+0.02535,-0.000237361
+0.02536,-0.000237361
+0.02537,-0.000237361
+0.02538,-0.000237361
+0.02539,-0.000237361
+0.0254,-0.000237361
+0.02541,-0.000237361
+0.02542,-0.00023736
+0.02543,-0.00023736
+0.02544,-0.00023736
+0.02545,-0.000237359
+0.02546,-0.000237359
+0.02547,-0.000237359
+0.02548,-0.000237358
+0.02549,-0.000237358
+0.0255,-0.000237358
+0.02551,-0.000237358
+0.02552,-0.000237357
+0.02553,-0.000237357
+0.02554,-0.000237357
+0.02555,-0.000237357
+0.02556,-0.000237357
+0.02557,-0.000237357
+0.02558,-0.000237357
+0.02559,-0.000237358
+0.0256,-0.000237358
+0.02561,-0.000237358
+0.02562,-0.000237358
+0.02563,-0.000237359
+0.02564,-0.000237359
+0.02565,-0.000237359
+0.02566,-0.00023736
+0.02567,-0.00023736
+0.02568,-0.00023736
+0.02569,-0.000237361
+0.0257,-0.000237361
+0.02571,-0.000237361
+0.02572,-0.000237361
+0.02573,-0.000237361
+0.02574,-0.000237361
+0.02575,-0.000237361
+0.02576,-0.000237361
+0.02577,-0.000237361
+0.02578,-0.000237361
+0.02579,-0.00023736
+0.0258,-0.00023736
+0.02581,-0.00023736
+0.02582,-0.00023736
+0.02583,-0.000237359
+0.02584,-0.000237359
+0.02585,-0.000237359
+0.02586,-0.000237358
+0.02587,-0.000237358
+0.02588,-0.000237358
+0.02589,-0.000237358
+0.0259,-0.000237358
+0.02591,-0.000237357
+0.02592,-0.000237357
+0.02593,-0.000237357
+0.02594,-0.000237357
+0.02595,-0.000237358
+0.02596,-0.000237358
+0.02597,-0.000237358
+0.02598,-0.000237358
+0.02599,-0.000237358
+0.026,-0.000237359
+0.02601,-0.000237359
+0.02602,-0.000237359
+0.02603,-0.000237359
+0.02604,-0.00023736
+0.02605,-0.00023736
+0.02606,-0.00023736
+0.02607,-0.00023736
+0.02608,-0.000237361
+0.02609,-0.000237361
+0.0261,-0.000237361
+0.02611,-0.000237361
+0.02612,-0.000237361
+0.02613,-0.000237361
+0.02614,-0.000237361
+0.02615,-0.000237361
+0.02616,-0.00023736
+0.02617,-0.00023736
+0.02618,-0.00023736
+0.02619,-0.00023736
+0.0262,-0.000237359
+0.02621,-0.000237359
+0.02622,-0.000237359
+0.02623,-0.000237359
+0.02624,-0.000237358
+0.02625,-0.000237358
+0.02626,-0.000237358
+0.02627,-0.000237358
+0.02628,-0.000237358
+0.02629,-0.000237358
+0.0263,-0.000237358
+0.02631,-0.000237358
+0.02632,-0.000237358
+0.02633,-0.000237358
+0.02634,-0.000237358
+0.02635,-0.000237358
+0.02636,-0.000237358
+0.02637,-0.000237358
+0.02638,-0.000237359
+0.02639,-0.000237359
+0.0264,-0.000237359
+0.02641,-0.00023736
+0.02642,-0.00023736
+0.02643,-0.00023736
+0.02644,-0.00023736
+0.02645,-0.00023736
+0.02646,-0.000237361
+0.02647,-0.000237361
+0.02648,-0.000237361
+0.02649,-0.000237361
+0.0265,-0.000237361
+0.02651,-0.000237361
+0.02652,-0.000237361
+0.02653,-0.00023736
+0.02654,-0.00023736
+0.02655,-0.00023736
+0.02656,-0.00023736
+0.02657,-0.00023736
+0.02658,-0.000237359
+0.02659,-0.000237359
+0.0266,-0.000237359
+0.02661,-0.000237359
+0.02662,-0.000237358
+0.02663,-0.000237358
+0.02664,-0.000237358
+0.02665,-0.000237358
+0.02666,-0.000237358
+0.02667,-0.000237358
+0.02668,-0.000237358
+0.02669,-0.000237358
+0.0267,-0.000237358
+0.02671,-0.000237358
+0.02672,-0.000237358
+0.02673,-0.000237358
+0.02674,-0.000237358
+0.02675,-0.000237359
+0.02676,-0.000237359
+0.02677,-0.000237359
+0.02678,-0.000237359
+0.02679,-0.00023736
+0.0268,-0.00023736
+0.02681,-0.00023736
+0.02682,-0.00023736
+0.02683,-0.00023736
+0.02684,-0.000237361
+0.02685,-0.000237361
+0.02686,-0.000237361
+0.02687,-0.000237361
+0.02688,-0.000237361
+0.02689,-0.000237361
+0.0269,-0.00023736
+0.02691,-0.00023736
+0.02692,-0.00023736
+0.02693,-0.00023736
+0.02694,-0.00023736
+0.02695,-0.00023736
+0.02696,-0.000237359
+0.02697,-0.000237359
+0.02698,-0.000237359
+0.02699,-0.000237359
+0.027,-0.000237358
+0.02701,-0.000237358
+0.02702,-0.000237358
+0.02703,-0.000237358
+0.02704,-0.000237358
+0.02705,-0.000237358
+0.02706,-0.000237358
+0.02707,-0.000237358
+0.02708,-0.000237358
+0.02709,-0.000237358
+0.0271,-0.000237358
+0.02711,-0.000237358
+0.02712,-0.000237359
+0.02713,-0.000237359
+0.02714,-0.000237359
+0.02715,-0.000237359
+0.02716,-0.000237359
+0.02717,-0.00023736
+0.02718,-0.00023736
+0.02719,-0.00023736
+0.0272,-0.00023736
+0.02721,-0.00023736
+0.02722,-0.00023736
+0.02723,-0.000237361
+0.02724,-0.000237361
+0.02725,-0.000237361
+0.02726,-0.000237361
+0.02727,-0.00023736
+0.02728,-0.00023736
+0.02729,-0.00023736
+0.0273,-0.00023736
+0.02731,-0.00023736
+0.02732,-0.00023736
+0.02733,-0.000237359
+0.02734,-0.000237359
+0.02735,-0.000237359
+0.02736,-0.000237359
+0.02737,-0.000237359
+0.02738,-0.000237358
+0.02739,-0.000237358
+0.0274,-0.000237358
+0.02741,-0.000237358
+0.02742,-0.000237358
+0.02743,-0.000237358
+0.02744,-0.000237358
+0.02745,-0.000237358
+0.02746,-0.000237358
+0.02747,-0.000237358
+0.02748,-0.000237358
+0.02749,-0.000237358
+0.0275,-0.000237359
+0.02751,-0.000237359
+0.02752,-0.000237359
+0.02753,-0.000237359
+0.02754,-0.000237359
+0.02755,-0.00023736
+0.02756,-0.00023736
+0.02757,-0.00023736
+0.02758,-0.00023736
+0.02759,-0.00023736
+0.0276,-0.00023736
+0.02761,-0.00023736
+0.02762,-0.00023736
+0.02763,-0.00023736
+0.02764,-0.00023736
+0.02765,-0.00023736
+0.02766,-0.00023736
+0.02767,-0.00023736
+0.02768,-0.00023736
+0.02769,-0.00023736
+0.0277,-0.00023736
+0.02771,-0.000237359
+0.02772,-0.000237359
+0.02773,-0.000237359
+0.02774,-0.000237359
+0.02775,-0.000237359
+0.02776,-0.000237358
+0.02777,-0.000237358
+0.02778,-0.000237358
+0.02779,-0.000237358
+0.0278,-0.000237358
+0.02781,-0.000237358
+0.02782,-0.000237358
+0.02783,-0.000237358
+0.02784,-0.000237358
+0.02785,-0.000237358
+0.02786,-0.000237358
+0.02787,-0.000237359
+0.02788,-0.000237359
+0.02789,-0.000237359
+0.0279,-0.000237359
+0.02791,-0.000237359
+0.02792,-0.00023736
+0.02793,-0.00023736
+0.02794,-0.00023736
+0.02795,-0.00023736
+0.02796,-0.00023736
+0.02797,-0.00023736
+0.02798,-0.00023736
+0.02799,-0.00023736
+0.028,-0.00023736
+0.02801,-0.00023736
+0.02802,-0.00023736
+0.02803,-0.00023736
+0.02804,-0.00023736
+0.02805,-0.00023736
+0.02806,-0.00023736
+0.02807,-0.00023736
+0.02808,-0.000237359
+0.02809,-0.000237359
+0.0281,-0.000237359
+0.02811,-0.000237359
+0.02812,-0.000237359
+0.02813,-0.000237359
+0.02814,-0.000237358
+0.02815,-0.000237358
+0.02816,-0.000237358
+0.02817,-0.000237358
+0.02818,-0.000237358
+0.02819,-0.000237358
+0.0282,-0.000237358
+0.02821,-0.000237358
+0.02822,-0.000237358
+0.02823,-0.000237358
+0.02824,-0.000237359
+0.02825,-0.000237359
+0.02826,-0.000237359
+0.02827,-0.000237359
+0.02828,-0.000237359
+0.02829,-0.000237359
+0.0283,-0.00023736
+0.02831,-0.00023736
+0.02832,-0.00023736
+0.02833,-0.00023736
+0.02834,-0.00023736
+0.02835,-0.00023736
+0.02836,-0.00023736
+0.02837,-0.00023736
+0.02838,-0.00023736
+0.02839,-0.00023736
+0.0284,-0.00023736
+0.02841,-0.00023736
+0.02842,-0.00023736
+0.02843,-0.00023736
+0.02844,-0.00023736
+0.02845,-0.00023736
+0.02846,-0.000237359
+0.02847,-0.000237359
+0.02848,-0.000237359
+0.02849,-0.000237359
+0.0285,-0.000237359
+0.02851,-0.000237359
+0.02852,-0.000237358
+0.02853,-0.000237358
+0.02854,-0.000237358
+0.02855,-0.000237358
+0.02856,-0.000237358
+0.02857,-0.000237358
+0.02858,-0.000237358
+0.02859,-0.000237358
+0.0286,-0.000237358
+0.02861,-0.000237358
+0.02862,-0.000237359
+0.02863,-0.000237359
+0.02864,-0.000237359
+0.02865,-0.000237359
+0.02866,-0.000237359
+0.02867,-0.000237359
+0.02868,-0.00023736
+0.02869,-0.00023736
+0.0287,-0.00023736
+0.02871,-0.00023736
+0.02872,-0.00023736
+0.02873,-0.00023736
+0.02874,-0.00023736
+0.02875,-0.00023736
+0.02876,-0.00023736
+0.02877,-0.00023736
+0.02878,-0.00023736
+0.02879,-0.00023736
+0.0288,-0.00023736
+0.02881,-0.00023736
+0.02882,-0.00023736
+0.02883,-0.000237359
+0.02884,-0.000237359
+0.02885,-0.000237359
+0.02886,-0.000237359
+0.02887,-0.000237359
+0.02888,-0.000237359
+0.02889,-0.000237359
+0.0289,-0.000237358
+0.02891,-0.000237358
+0.02892,-0.000237358
+0.02893,-0.000237358
+0.02894,-0.000237358
+0.02895,-0.000237358
+0.02896,-0.000237358
+0.02897,-0.000237358
+0.02898,-0.000237358
+0.02899,-0.000237359
+0.029,-0.000237359
+0.02901,-0.000237359
+0.02902,-0.000237359
+0.02903,-0.000237359
+0.02904,-0.000237359
+0.02905,-0.000237359
+0.02906,-0.00023736
+0.02907,-0.00023736
+0.02908,-0.00023736
+0.02909,-0.00023736
+0.0291,-0.00023736
+0.02911,-0.00023736
+0.02912,-0.00023736
+0.02913,-0.00023736
+0.02914,-0.00023736
+0.02915,-0.00023736
+0.02916,-0.00023736
+0.02917,-0.00023736
+0.02918,-0.00023736
+0.02919,-0.00023736
+0.0292,-0.00023736
+0.02921,-0.000237359
+0.02922,-0.000237359
+0.02923,-0.000237359
+0.02924,-0.000237359
+0.02925,-0.000237359
+0.02926,-0.000237359
+0.02927,-0.000237359
+0.02928,-0.000237358
+0.02929,-0.000237358
+0.0293,-0.000237358
+0.02931,-0.000237358
+0.02932,-0.000237358
+0.02933,-0.000237358
+0.02934,-0.000237358
+0.02935,-0.000237358
+0.02936,-0.000237359
+0.02937,-0.000237359
+0.02938,-0.000237359
+0.02939,-0.000237359
+0.0294,-0.000237359
+0.02941,-0.000237359
+0.02942,-0.000237359
+0.02943,-0.000237359
+0.02944,-0.00023736
+0.02945,-0.00023736
+0.02946,-0.00023736
+0.02947,-0.00023736
+0.02948,-0.00023736
+0.02949,-0.00023736
+0.0295,-0.00023736
+0.02951,-0.00023736
+0.02952,-0.00023736
+0.02953,-0.00023736
+0.02954,-0.00023736
+0.02955,-0.00023736
+0.02956,-0.00023736
+0.02957,-0.00023736
+0.02958,-0.000237359
+0.02959,-0.000237359
+0.0296,-0.000237359
+0.02961,-0.000237359
+0.02962,-0.000237359
+0.02963,-0.000237359
+0.02964,-0.000237359
+0.02965,-0.000237359
+0.02966,-0.000237359
+0.02967,-0.000237358
+0.02968,-0.000237358
+0.02969,-0.000237358
+0.0297,-0.000237358
+0.02971,-0.000237358
+0.02972,-0.000237358
+0.02973,-0.000237359
+0.02974,-0.000237359
+0.02975,-0.000237359
+0.02976,-0.000237359
+0.02977,-0.000237359
+0.02978,-0.000237359
+0.02979,-0.000237359
+0.0298,-0.000237359
+0.02981,-0.00023736
+0.02982,-0.00023736
+0.02983,-0.00023736
+0.02984,-0.00023736
+0.02985,-0.00023736
+0.02986,-0.00023736
+0.02987,-0.00023736
+0.02988,-0.00023736
+0.02989,-0.00023736
+0.0299,-0.00023736
+0.02991,-0.00023736
+0.02992,-0.00023736
+0.02993,-0.00023736
+0.02994,-0.00023736
+0.02995,-0.00023736
+0.02996,-0.000237359
+0.02997,-0.000237359
+0.02998,-0.000237359
+0.02999,-0.000237359
+0.03,-0.000237359
+0.03001,-0.000237359
+0.03002,-0.000237359
+0.03003,-0.000237359
+0.03004,-0.000237359
+0.03005,-0.000237359
+0.03006,-0.000237358
+0.03007,-0.000237358
+0.03008,-0.000237358
+0.03009,-0.000237359
+0.0301,-0.000237359
+0.03011,-0.000237359
+0.03012,-0.000237359
+0.03013,-0.000237359
+0.03014,-0.000237359
+0.03015,-0.000237359
+0.03016,-0.000237359
+0.03017,-0.000237359
+0.03018,-0.000237359
+0.03019,-0.00023736
+0.0302,-0.00023736
+0.03021,-0.00023736
+0.03022,-0.00023736
+0.03023,-0.00023736
+0.03024,-0.00023736
+0.03025,-0.00023736
+0.03026,-0.00023736
+0.03027,-0.00023736
+0.03028,-0.00023736
+0.03029,-0.00023736
+0.0303,-0.00023736
+0.03031,-0.00023736
+0.03032,-0.00023736
+0.03033,-0.000237359
+0.03034,-0.000237359
+0.03035,-0.000237359
+0.03036,-0.000237359
+0.03037,-0.000237359
+0.03038,-0.000237359
+0.03039,-0.000237359
+0.0304,-0.000237359
+0.03041,-0.000237359
+0.03042,-0.000237359
+0.03043,-0.000237359
+0.03044,-0.000237359
+0.03045,-0.000237359
+0.03046,-0.000237359
+0.03047,-0.000237359
+0.03048,-0.000237359
+0.03049,-0.000237359
+0.0305,-0.000237359
+0.03051,-0.000237359
+0.03052,-0.000237359
+0.03053,-0.000237359
+0.03054,-0.000237359
+0.03055,-0.000237359
+0.03056,-0.000237359
+0.03057,-0.00023736
+0.03058,-0.00023736
+0.03059,-0.00023736
+0.0306,-0.00023736
+0.03061,-0.00023736
+0.03062,-0.00023736
+0.03063,-0.00023736
+0.03064,-0.00023736
+0.03065,-0.00023736
+0.03066,-0.00023736
+0.03067,-0.00023736
+0.03068,-0.00023736
+0.03069,-0.00023736
+0.0307,-0.00023736
+0.03071,-0.000237359
+0.03072,-0.000237359
+0.03073,-0.000237359
+0.03074,-0.000237359
+0.03075,-0.000237359
+0.03076,-0.000237359
+0.03077,-0.000237359
+0.03078,-0.000237359
+0.03079,-0.000237359
+0.0308,-0.000237359
+0.03081,-0.000237359
+0.03082,-0.000237359
+0.03083,-0.000237359
+0.03084,-0.000237359
+0.03085,-0.000237359
+0.03086,-0.000237359
+0.03087,-0.000237359
+0.03088,-0.000237359
+0.03089,-0.000237359
+0.0309,-0.000237359
+0.03091,-0.000237359
+0.03092,-0.000237359
+0.03093,-0.000237359
+0.03094,-0.000237359
+0.03095,-0.00023736
+0.03096,-0.00023736
+0.03097,-0.00023736
+0.03098,-0.00023736
+0.03099,-0.00023736
+0.031,-0.00023736
+0.03101,-0.00023736
+0.03102,-0.00023736
+0.03103,-0.00023736
+0.03104,-0.00023736
+0.03105,-0.00023736
+0.03106,-0.00023736
+0.03107,-0.00023736
+0.03108,-0.000237359
+0.03109,-0.000237359
+0.0311,-0.000237359
+0.03111,-0.000237359
+0.03112,-0.000237359
+0.03113,-0.000237359
+0.03114,-0.000237359
+0.03115,-0.000237359
+0.03116,-0.000237359
+0.03117,-0.000237359
+0.03118,-0.000237359
+0.03119,-0.000237359
+0.0312,-0.000237359
+0.03121,-0.000237359
+0.03122,-0.000237359
+0.03123,-0.000237359
+0.03124,-0.000237359
+0.03125,-0.000237359
+0.03126,-0.000237359
+0.03127,-0.000237359
+0.03128,-0.000237359
+0.03129,-0.000237359
+0.0313,-0.000237359
+0.03131,-0.000237359
+0.03132,-0.000237359
+0.03133,-0.00023736
+0.03134,-0.00023736
+0.03135,-0.00023736
+0.03136,-0.00023736
+0.03137,-0.00023736
+0.03138,-0.00023736
+0.03139,-0.00023736
+0.0314,-0.00023736
+0.03141,-0.00023736
+0.03142,-0.00023736
+0.03143,-0.00023736
+0.03144,-0.00023736
+0.03145,-0.00023736
+0.03146,-0.000237359
+0.03147,-0.000237359
+0.03148,-0.000237359
+0.03149,-0.000237359
+0.0315,-0.000237359
+0.03151,-0.000237359
+0.03152,-0.000237359
+0.03153,-0.000237359
+0.03154,-0.000237359
+0.03155,-0.000237359
+0.03156,-0.000237359
+0.03157,-0.000237359
+0.03158,-0.000237359
+0.03159,-0.000237359
+0.0316,-0.000237359
+0.03161,-0.000237359
+0.03162,-0.000237359
+0.03163,-0.000237359
+0.03164,-0.000237359
+0.03165,-0.000237359
+0.03166,-0.000237359
+0.03167,-0.000237359
+0.03168,-0.000237359
+0.03169,-0.000237359
+0.0317,-0.000237359
+0.03171,-0.00023736
+0.03172,-0.00023736
+0.03173,-0.00023736
+0.03174,-0.00023736
+0.03175,-0.00023736
+0.03176,-0.00023736
+0.03177,-0.00023736
+0.03178,-0.00023736
+0.03179,-0.00023736
+0.0318,-0.00023736
+0.03181,-0.00023736
+0.03182,-0.00023736
+0.03183,-0.000237359
+0.03184,-0.000237359
+0.03185,-0.000237359
+0.03186,-0.000237359
+0.03187,-0.000237359
+0.03188,-0.000237359
+0.03189,-0.000237359
+0.0319,-0.000237359
+0.03191,-0.000237359
+0.03192,-0.000237359
+0.03193,-0.000237359
+0.03194,-0.000237359
+0.03195,-0.000237359
+0.03196,-0.000237359
+0.03197,-0.000237359
+0.03198,-0.000237359
+0.03199,-0.000237359
+0.032,-0.000237359
+0.03201,-0.000237359
+0.03202,-0.000237359
+0.03203,-0.000237359
+0.03204,-0.000237359
+0.03205,-0.000237359
+0.03206,-0.000237359
+0.03207,-0.000237359
+0.03208,-0.000237359
+0.03209,-0.00023736
+0.0321,-0.00023736
+0.03211,-0.00023736
+0.03212,-0.00023736
+0.03213,-0.00023736
+0.03214,-0.00023736
+0.03215,-0.00023736
+0.03216,-0.00023736
+0.03217,-0.00023736
+0.03218,-0.00023736
+0.03219,-0.00023736
+0.0322,-0.000237359
+0.03221,-0.000237359
+0.03222,-0.000237359
+0.03223,-0.000237359
+0.03224,-0.000237359
+0.03225,-0.000237359
+0.03226,-0.000237359
+0.03227,-0.000237359
+0.03228,-0.000237359
+0.03229,-0.000237359
+0.0323,-0.000237359
+0.03231,-0.000237359
+0.03232,-0.000237359
+0.03233,-0.000237359
+0.03234,-0.000237359
+0.03235,-0.000237359
+0.03236,-0.000237359
+0.03237,-0.000237359
+0.03238,-0.000237359
+0.03239,-0.000237359
+0.0324,-0.000237359
+0.03241,-0.000237359
+0.03242,-0.000237359
+0.03243,-0.000237359
+0.03244,-0.000237359
+0.03245,-0.000237359
+0.03246,-0.000237359
+0.03247,-0.00023736
+0.03248,-0.00023736
+0.03249,-0.00023736
+0.0325,-0.00023736
+0.03251,-0.00023736
+0.03252,-0.00023736
+0.03253,-0.00023736
+0.03254,-0.00023736
+0.03255,-0.00023736
+0.03256,-0.00023736
+0.03257,-0.000237359
+0.03258,-0.000237359
+0.03259,-0.000237359
+0.0326,-0.000237359
+0.03261,-0.000237359
+0.03262,-0.000237359
+0.03263,-0.000237359
+0.03264,-0.000237359
+0.03265,-0.000237359
+0.03266,-0.000237359
+0.03267,-0.000237359
+0.03268,-0.000237359
+0.03269,-0.000237359
+0.0327,-0.000237359
+0.03271,-0.000237359
+0.03272,-0.000237359
+0.03273,-0.000237359
+0.03274,-0.000237359
+0.03275,-0.000237359
+0.03276,-0.000237359
+0.03277,-0.000237359
+0.03278,-0.000237359
+0.03279,-0.000237359
+0.0328,-0.000237359
+0.03281,-0.000237359
+0.03282,-0.000237359
+0.03283,-0.000237359
+0.03284,-0.000237359
+0.03285,-0.00023736
+0.03286,-0.00023736
+0.03287,-0.00023736
+0.03288,-0.00023736
+0.03289,-0.00023736
+0.0329,-0.00023736
+0.03291,-0.00023736
+0.03292,-0.00023736
+0.03293,-0.00023736
+0.03294,-0.00023736
+0.03295,-0.000237359
+0.03296,-0.000237359
+0.03297,-0.000237359
+0.03298,-0.000237359
+0.03299,-0.000237359
+0.033,-0.000237359
+0.03301,-0.000237359
+0.03302,-0.000237359
+0.03303,-0.000237359
+0.03304,-0.000237359
+0.03305,-0.000237359
+0.03306,-0.000237359
+0.03307,-0.000237359
+0.03308,-0.000237359
+0.03309,-0.000237359
+0.0331,-0.000237359
+0.03311,-0.000237359
+0.03312,-0.000237359
+0.03313,-0.000237359
+0.03314,-0.000237359
+0.03315,-0.000237359
+0.03316,-0.000237359
+0.03317,-0.000237359
+0.03318,-0.000237359
+0.03319,-0.000237359
+0.0332,-0.000237359
+0.03321,-0.000237359
+0.03322,-0.000237359
+0.03323,-0.00023736
+0.03324,-0.00023736
+0.03325,-0.00023736
+0.03326,-0.00023736
+0.03327,-0.00023736
+0.03328,-0.00023736
+0.03329,-0.00023736
+0.0333,-0.00023736
+0.03331,-0.00023736
+0.03332,-0.000237359
+0.03333,-0.000237359
+0.03334,-0.000237359
+0.03335,-0.000237359
+0.03336,-0.000237359
+0.03337,-0.000237359
+0.03338,-0.000237359
+0.03339,-0.000237359
+0.0334,-0.000237359
+0.03341,-0.000237359
+0.03342,-0.000237359
+0.03343,-0.000237359
+0.03344,-0.000237359
+0.03345,-0.000237359
+0.03346,-0.000237359
+0.03347,-0.000237359
+0.03348,-0.000237359
+0.03349,-0.000237359
+0.0335,-0.000237359
+0.03351,-0.000237359
+0.03352,-0.000237359
+0.03353,-0.000237359
+0.03354,-0.000237359
+0.03355,-0.000237359
+0.03356,-0.000237359
+0.03357,-0.000237359
+0.03358,-0.000237359
+0.03359,-0.000237359
+0.0336,-0.000237359
+0.03361,-0.000237359
+0.03362,-0.00023736
+0.03363,-0.00023736
+0.03364,-0.00023736
+0.03365,-0.00023736
+0.03366,-0.00023736
+0.03367,-0.00023736
+0.03368,-0.00023736
+0.03369,-0.000237359
+0.0337,-0.000237359
+0.03371,-0.000237359
+0.03372,-0.000237359
+0.03373,-0.000237359
+0.03374,-0.000237359
+0.03375,-0.000237359
+0.03376,-0.000237359
+0.03377,-0.000237359
+0.03378,-0.000237359
+0.03379,-0.000237359
+0.0338,-0.000237359
+0.03381,-0.000237359
+0.03382,-0.000237359
+0.03383,-0.000237359
+0.03384,-0.000237359
+0.03385,-0.000237359
+0.03386,-0.000237359
+0.03387,-0.000237359
+0.03388,-0.000237359
+0.03389,-0.000237359
+0.0339,-0.000237359
+0.03391,-0.000237359
+0.03392,-0.000237359
+0.03393,-0.000237359
+0.03394,-0.000237359
+0.03395,-0.000237359
+0.03396,-0.000237359
+0.03397,-0.000237359
+0.03398,-0.000237359
+0.03399,-0.000237359
+0.034,-0.00023736
+0.03401,-0.00023736
+0.03402,-0.00023736
+0.03403,-0.00023736
+0.03404,-0.00023736
+0.03405,-0.00023736
+0.03406,-0.000237359
+0.03407,-0.000237359
+0.03408,-0.000237359
+0.03409,-0.000237359
+0.0341,-0.000237359
+0.03411,-0.000237359
+0.03412,-0.000237359
+0.03413,-0.000237359
+0.03414,-0.000237359
+0.03415,-0.000237359
+0.03416,-0.000237359
+0.03417,-0.000237359
+0.03418,-0.000237359
+0.03419,-0.000237359
+0.0342,-0.000237359
+0.03421,-0.000237359
+0.03422,-0.000237359
+0.03423,-0.000237359
+0.03424,-0.000237359
+0.03425,-0.000237359
+0.03426,-0.000237359
+0.03427,-0.000237359
+0.03428,-0.000237359
+0.03429,-0.000237359
+0.0343,-0.000237359
+0.03431,-0.000237359
+0.03432,-0.000237359
+0.03433,-0.000237359
+0.03434,-0.000237359
+0.03435,-0.000237359
+0.03436,-0.000237359
+0.03437,-0.000237359
+0.03438,-0.000237359
+0.03439,-0.00023736
+0.0344,-0.00023736
+0.03441,-0.00023736
+0.03442,-0.000237359
+0.03443,-0.000237359
+0.03444,-0.000237359
+0.03445,-0.000237359
+0.03446,-0.000237359
+0.03447,-0.000237359
+0.03448,-0.000237359
+0.03449,-0.000237359
+0.0345,-0.000237359
+0.03451,-0.000237359
+0.03452,-0.000237359
+0.03453,-0.000237359
+0.03454,-0.000237359
+0.03455,-0.000237359
+0.03456,-0.000237359
+0.03457,-0.000237359
+0.03458,-0.000237359
+0.03459,-0.000237359
+0.0346,-0.000237359
+0.03461,-0.000237359
+0.03462,-0.000237359
+0.03463,-0.000237359
+0.03464,-0.000237359
+0.03465,-0.000237359
+0.03466,-0.000237359
+0.03467,-0.000237359
+0.03468,-0.000237359
+0.03469,-0.000237359
+0.0347,-0.000237359
+0.03471,-0.000237359
+0.03472,-0.000237359
+0.03473,-0.000237359
+0.03474,-0.000237359
+0.03475,-0.000237359
+0.03476,-0.000237359
+0.03477,-0.000237359
+0.03478,-0.000237359
+0.03479,-0.000237359
+0.0348,-0.000237359
+0.03481,-0.000237359
+0.03482,-0.000237359
+0.03483,-0.000237359
+0.03484,-0.000237359
+0.03485,-0.000237359
+0.03486,-0.000237359
+0.03487,-0.000237359
+0.03488,-0.000237359
+0.03489,-0.000237359
+0.0349,-0.000237359
+0.03491,-0.000237359
+0.03492,-0.000237359
+0.03493,-0.000237359
+0.03494,-0.000237359
+0.03495,-0.000237359
+0.03496,-0.000237359
+0.03497,-0.000237359
+0.03498,-0.000237359
+0.03499,-0.000237359
+0.035,-0.000237359
+0.03501,-0.000237359
+0.03502,-0.000237359
+0.03503,-0.000237359
+0.03504,-0.000237359
+0.03505,-0.000237359
+0.03506,-0.000237359
+0.03507,-0.000237359
+0.03508,-0.000237359
+0.03509,-0.000237359
+0.0351,-0.000237359
+0.03511,-0.000237359
+0.03512,-0.000237359
+0.03513,-0.000237359
+0.03514,-0.000237359
+0.03515,-0.000237359
+0.03516,-0.000237359
+0.03517,-0.000237359
+0.03518,-0.000237359
+0.03519,-0.000237359
+0.0352,-0.000237359
+0.03521,-0.000237359
+0.03522,-0.000237359
+0.03523,-0.000237359
+0.03524,-0.000237359
+0.03525,-0.000237359
+0.03526,-0.000237359
+0.03527,-0.000237359
+0.03528,-0.000237359
+0.03529,-0.000237359
+0.0353,-0.000237359
+0.03531,-0.000237359
+0.03532,-0.000237359
+0.03533,-0.000237359
+0.03534,-0.000237359
+0.03535,-0.000237359
+0.03536,-0.000237359
+0.03537,-0.000237359
+0.03538,-0.000237359
+0.03539,-0.000237359
+0.0354,-0.000237359
+0.03541,-0.000237359
+0.03542,-0.000237359
+0.03543,-0.000237359
+0.03544,-0.000237359
+0.03545,-0.000237359
+0.03546,-0.000237359
+0.03547,-0.000237359
+0.03548,-0.000237359
+0.03549,-0.000237359
+0.0355,-0.000237359
+0.03551,-0.000237359
+0.03552,-0.000237359
+0.03553,-0.000237359
+0.03554,-0.000237359
+0.03555,-0.000237359
+0.03556,-0.000237359
+0.03557,-0.000237359
+0.03558,-0.000237359
+0.03559,-0.000237359
+0.0356,-0.000237359
+0.03561,-0.000237359
+0.03562,-0.000237359
+0.03563,-0.000237359
+0.03564,-0.000237359
+0.03565,-0.000237359
+0.03566,-0.000237359
+0.03567,-0.000237359
+0.03568,-0.000237359
+0.03569,-0.000237359
+0.0357,-0.000237359
+0.03571,-0.000237359
+0.03572,-0.000237359
+0.03573,-0.000237359
+0.03574,-0.000237359
+0.03575,-0.000237359
+0.03576,-0.000237359
+0.03577,-0.000237359
+0.03578,-0.000237359
+0.03579,-0.000237359
+0.0358,-0.000237359
+0.03581,-0.000237359
+0.03582,-0.000237359
+0.03583,-0.000237359
+0.03584,-0.000237359
+0.03585,-0.000237359
+0.03586,-0.000237359
+0.03587,-0.000237359
+0.03588,-0.000237359
+0.03589,-0.000237359
+0.0359,-0.000237359
+0.03591,-0.000237359
+0.03592,-0.000237359
+0.03593,-0.000237359
+0.03594,-0.000237359
+0.03595,-0.000237359
+0.03596,-0.000237359
+0.03597,-0.000237359
+0.03598,-0.000237359
+0.03599,-0.000237359
+0.036,-0.000237359
+0.03601,-0.000237359
+0.03602,-0.000237359
+0.03603,-0.000237359
+0.03604,-0.000237359
+0.03605,-0.000237359
+0.03606,-0.000237359
+0.03607,-0.000237359
+0.03608,-0.000237359
+0.03609,-0.000237359
+0.0361,-0.000237359
+0.03611,-0.000237359
+0.03612,-0.000237359
+0.03613,-0.000237359
+0.03614,-0.000237359
+0.03615,-0.000237359
+0.03616,-0.000237359
+0.03617,-0.000237359
+0.03618,-0.000237359
+0.03619,-0.000237359
+0.0362,-0.000237359
+0.03621,-0.000237359
+0.03622,-0.000237359
+0.03623,-0.000237359
+0.03624,-0.000237359
+0.03625,-0.000237359
+0.03626,-0.000237359
+0.03627,-0.000237359
+0.03628,-0.000237359
+0.03629,-0.000237359
+0.0363,-0.000237359
+0.03631,-0.000237359
+0.03632,-0.000237359
+0.03633,-0.000237359
+0.03634,-0.000237359
+0.03635,-0.000237359
+0.03636,-0.000237359
+0.03637,-0.000237359
+0.03638,-0.000237359
+0.03639,-0.000237359
+0.0364,-0.000237359
+0.03641,-0.000237359
+0.03642,-0.000237359
+0.03643,-0.000237359
+0.03644,-0.000237359
+0.03645,-0.000237359
+0.03646,-0.000237359
+0.03647,-0.000237359
+0.03648,-0.000237359
+0.03649,-0.000237359
+0.0365,-0.000237359
+0.03651,-0.000237359
+0.03652,-0.000237359
+0.03653,-0.000237359
+0.03654,-0.000237359
+0.03655,-0.000237359
+0.03656,-0.000237359
+0.03657,-0.000237359
+0.03658,-0.000237359
+0.03659,-0.000237359
+0.0366,-0.000237359
+0.03661,-0.000237359
+0.03662,-0.000237359
+0.03663,-0.000237359
+0.03664,-0.000237359
+0.03665,-0.000237359
+0.03666,-0.000237359
+0.03667,-0.000237359
+0.03668,-0.000237359
+0.03669,-0.000237359
+0.0367,-0.000237359
+0.03671,-0.000237359
+0.03672,-0.000237359
+0.03673,-0.000237359
+0.03674,-0.000237359
+0.03675,-0.000237359
+0.03676,-0.000237359
+0.03677,-0.000237359
+0.03678,-0.000237359
+0.03679,-0.000237359
+0.0368,-0.000237359
+0.03681,-0.000237359
+0.03682,-0.000237359
+0.03683,-0.000237359
+0.03684,-0.000237359
+0.03685,-0.000237359
+0.03686,-0.000237359
+0.03687,-0.000237359
+0.03688,-0.000237359
+0.03689,-0.000237359
+0.0369,-0.000237359
+0.03691,-0.000237359
+0.03692,-0.000237359
+0.03693,-0.000237359
+0.03694,-0.000237359
+0.03695,-0.000237359
+0.03696,-0.000237359
+0.03697,-0.000237359
+0.03698,-0.000237359
+0.03699,-0.000237359
+0.037,-0.000237359
+0.03701,-0.000237359
+0.03702,-0.000237359
+0.03703,-0.000237359
+0.03704,-0.000237359
+0.03705,-0.000237359
+0.03706,-0.000237359
+0.03707,-0.000237359
+0.03708,-0.000237359
+0.03709,-0.000237359
+0.0371,-0.000237359
+0.03711,-0.000237359
+0.03712,-0.000237359
+0.03713,-0.000237359
+0.03714,-0.000237359
+0.03715,-0.000237359
+0.03716,-0.000237359
+0.03717,-0.000237359
+0.03718,-0.000237359
+0.03719,-0.000237359
+0.0372,-0.000237359
+0.03721,-0.000237359
+0.03722,-0.000237359
+0.03723,-0.000237359
+0.03724,-0.000237359
+0.03725,-0.000237359
+0.03726,-0.000237359
+0.03727,-0.000237359
+0.03728,-0.000237359
+0.03729,-0.000237359
+0.0373,-0.000237359
+0.03731,-0.000237359
+0.03732,-0.000237359
+0.03733,-0.000237359
+0.03734,-0.000237359
+0.03735,-0.000237359
+0.03736,-0.000237359
+0.03737,-0.000237359
+0.03738,-0.000237359
+0.03739,-0.000237359
+0.0374,-0.000237359
+0.03741,-0.000237359
+0.03742,-0.000237359
+0.03743,-0.000237359
+0.03744,-0.000237359
+0.03745,-0.000237359
+0.03746,-0.000237359
+0.03747,-0.000237359
+0.03748,-0.000237359
+0.03749,-0.000237359
+0.0375,-0.000237359
+0.03751,-0.000237359
+0.03752,-0.000237359
+0.03753,-0.000237359
+0.03754,-0.000237359
+0.03755,-0.000237359
+0.03756,-0.000237359
+0.03757,-0.000237359
+0.03758,-0.000237359
+0.03759,-0.000237359
+0.0376,-0.000237359
+0.03761,-0.000237359
+0.03762,-0.000237359
+0.03763,-0.000237359
+0.03764,-0.000237359
+0.03765,-0.000237359
+0.03766,-0.000237359
+0.03767,-0.000237359
+0.03768,-0.000237359
+0.03769,-0.000237359
+0.0377,-0.000237359
+0.03771,-0.000237359
+0.03772,-0.000237359
+0.03773,-0.000237359
+0.03774,-0.000237359
+0.03775,-0.000237359
+0.03776,-0.000237359
+0.03777,-0.000237359
+0.03778,-0.000237359
+0.03779,-0.000237359
+0.0378,-0.000237359
+0.03781,-0.000237359
+0.03782,-0.000237359
+0.03783,-0.000237359
+0.03784,-0.000237359
+0.03785,-0.000237359
+0.03786,-0.000237359
+0.03787,-0.000237359
+0.03788,-0.000237359
+0.03789,-0.000237359
+0.0379,-0.000237359
+0.03791,-0.000237359
+0.03792,-0.000237359
+0.03793,-0.000237359
+0.03794,-0.000237359
+0.03795,-0.000237359
+0.03796,-0.000237359
+0.03797,-0.000237359
+0.03798,-0.000237359
+0.03799,-0.000237359
+0.038,-0.000237359
+0.03801,-0.000237359
+0.03802,-0.000237359
+0.03803,-0.000237359
+0.03804,-0.000237359
+0.03805,-0.000237359
+0.03806,-0.000237359
+0.03807,-0.000237359
+0.03808,-0.000237359
+0.03809,-0.000237359
+0.0381,-0.000237359
+0.03811,-0.000237359
+0.03812,-0.000237359
+0.03813,-0.000237359
+0.03814,-0.000237359
+0.03815,-0.000237359
+0.03816,-0.000237359
+0.03817,-0.000237359
+0.03818,-0.000237359
+0.03819,-0.000237359
+0.0382,-0.000237359
+0.03821,-0.000237359
+0.03822,-0.000237359
+0.03823,-0.000237359
+0.03824,-0.000237359
+0.03825,-0.000237359
+0.03826,-0.000237359
+0.03827,-0.000237359
+0.03828,-0.000237359
+0.03829,-0.000237359
+0.0383,-0.000237359
+0.03831,-0.000237359
+0.03832,-0.000237359
+0.03833,-0.000237359
+0.03834,-0.000237359
+0.03835,-0.000237359
+0.03836,-0.000237359
+0.03837,-0.000237359
+0.03838,-0.000237359
+0.03839,-0.000237359
+0.0384,-0.000237359
+0.03841,-0.000237359
+0.03842,-0.000237359
+0.03843,-0.000237359
+0.03844,-0.000237359
+0.03845,-0.000237359
+0.03846,-0.000237359
+0.03847,-0.000237359
+0.03848,-0.000237359
+0.03849,-0.000237359
+0.0385,-0.000237359
+0.03851,-0.000237359
+0.03852,-0.000237359
+0.03853,-0.000237359
+0.03854,-0.000237359
+0.03855,-0.000237359
+0.03856,-0.000237359
+0.03857,-0.000237359
+0.03858,-0.000237359
+0.03859,-0.000237359
+0.0386,-0.000237359
+0.03861,-0.000237359
+0.03862,-0.000237359
+0.03863,-0.000237359
+0.03864,-0.000237359
+0.03865,-0.000237359
+0.03866,-0.000237359
+0.03867,-0.000237359
+0.03868,-0.000237359
+0.03869,-0.000237359
+0.0387,-0.000237359
+0.03871,-0.000237359
+0.03872,-0.000237359
+0.03873,-0.000237359
+0.03874,-0.000237359
+0.03875,-0.000237359
+0.03876,-0.000237359
+0.03877,-0.000237359
+0.03878,-0.000237359
+0.03879,-0.000237359
+0.0388,-0.000237359
+0.03881,-0.000237359
+0.03882,-0.000237359
+0.03883,-0.000237359
+0.03884,-0.000237359
+0.03885,-0.000237359
+0.03886,-0.000237359
+0.03887,-0.000237359
+0.03888,-0.000237359
+0.03889,-0.000237359
+0.0389,-0.000237359
+0.03891,-0.000237359
+0.03892,-0.000237359
+0.03893,-0.000237359
+0.03894,-0.000237359
+0.03895,-0.000237359
+0.03896,-0.000237359
+0.03897,-0.000237359
+0.03898,-0.000237359
+0.03899,-0.000237359
+0.039,-0.000237359
+0.03901,-0.000237359
+0.03902,-0.000237359
+0.03903,-0.000237359
+0.03904,-0.000237359
+0.03905,-0.000237359
+0.03906,-0.000237359
+0.03907,-0.000237359
+0.03908,-0.000237359
+0.03909,-0.000237359
+0.0391,-0.000237359
+0.03911,-0.000237359
+0.03912,-0.000237359
+0.03913,-0.000237359
+0.03914,-0.000237359
+0.03915,-0.000237359
+0.03916,-0.000237359
+0.03917,-0.000237359
+0.03918,-0.000237359
+0.03919,-0.000237359
+0.0392,-0.000237359
+0.03921,-0.000237359
+0.03922,-0.000237359
+0.03923,-0.000237359
+0.03924,-0.000237359
+0.03925,-0.000237359
+0.03926,-0.000237359
+0.03927,-0.000237359
+0.03928,-0.000237359
+0.03929,-0.000237359
+0.0393,-0.000237359
+0.03931,-0.000237359
+0.03932,-0.000237359
+0.03933,-0.000237359
+0.03934,-0.000237359
+0.03935,-0.000237359
+0.03936,-0.000237359
+0.03937,-0.000237359
+0.03938,-0.000237359
+0.03939,-0.000237359
+0.0394,-0.000237359
+0.03941,-0.000237359
+0.03942,-0.000237359
+0.03943,-0.000237359
+0.03944,-0.000237359
+0.03945,-0.000237359
+0.03946,-0.000237359
+0.03947,-0.000237359
+0.03948,-0.000237359
+0.03949,-0.000237359
+0.0395,-0.000237359
+0.03951,-0.000237359
+0.03952,-0.000237359
+0.03953,-0.000237359
+0.03954,-0.000237359
+0.03955,-0.000237359
+0.03956,-0.000237359
+0.03957,-0.000237359
+0.03958,-0.000237359
+0.03959,-0.000237359
+0.0396,-0.000237359
+0.03961,-0.000237359
+0.03962,-0.000237359
+0.03963,-0.000237359
+0.03964,-0.000237359
+0.03965,-0.000237359
+0.03966,-0.000237359
+0.03967,-0.000237359
+0.03968,-0.000237359
+0.03969,-0.000237359
+0.0397,-0.000237359
+0.03971,-0.000237359
+0.03972,-0.000237359
+0.03973,-0.000237359
+0.03974,-0.000237359
+0.03975,-0.000237359
+0.03976,-0.000237359
+0.03977,-0.000237359
+0.03978,-0.000237359
+0.03979,-0.000237359
+0.0398,-0.000237359
+0.03981,-0.000237359
+0.03982,-0.000237359
+0.03983,-0.000237359
+0.03984,-0.000237359
+0.03985,-0.000237359
+0.03986,-0.000237359
+0.03987,-0.000237359
+0.03988,-0.000237359
+0.03989,-0.000237359
+0.0399,-0.000237359
+0.03991,-0.000237359
+0.03992,-0.000237359
+0.03993,-0.000237359
+0.03994,-0.000237359
+0.03995,-0.000237359
+0.03996,-0.000237359
+0.03997,-0.000237359
+0.03998,-0.000237359
+0.03999,-0.000237359
+0.04,-0.000237359
+0.04001,-0.000237359
+0.04002,-0.000237359
+0.04003,-0.000237359
+0.04004,-0.000237359
+0.04005,-0.000237359
+0.04006,-0.000237359
+0.04007,-0.000237359
+0.04008,-0.000237359
+0.04009,-0.000237359
+0.0401,-0.000237359
+0.04011,-0.000237359
+0.04012,-0.000237359
+0.04013,-0.000237359
+0.04014,-0.000237359
+0.04015,-0.000237359
+0.04016,-0.000237359
+0.04017,-0.000237359
+0.04018,-0.000237359
+0.04019,-0.000237359
+0.0402,-0.000237359
+0.04021,-0.000237359
+0.04022,-0.000237359
+0.04023,-0.000237359
+0.04024,-0.000237359
+0.04025,-0.000237359
+0.04026,-0.000237359
+0.04027,-0.000237359
+0.04028,-0.000237359
+0.04029,-0.000237359
+0.0403,-0.000237359
+0.04031,-0.000237359
+0.04032,-0.000237359
+0.04033,-0.000237359
+0.04034,-0.000237359
+0.04035,-0.000237359
+0.04036,-0.000237359
+0.04037,-0.000237359
+0.04038,-0.000237359
+0.04039,-0.000237359
+0.0404,-0.000237359
+0.04041,-0.000237359
+0.04042,-0.000237359
+0.04043,-0.000237359
+0.04044,-0.000237359
+0.04045,-0.000237359
+0.04046,-0.000237359
+0.04047,-0.000237359
+0.04048,-0.000237359
+0.04049,-0.000237359
+0.0405,-0.000237359
+0.04051,-0.000237359
+0.04052,-0.000237359
+0.04053,-0.000237359
+0.04054,-0.000237359
+0.04055,-0.000237359
+0.04056,-0.000237359
+0.04057,-0.000237359
+0.04058,-0.000237359
+0.04059,-0.000237359
+0.0406,-0.000237359
+0.04061,-0.000237359
+0.04062,-0.000237359
+0.04063,-0.000237359
+0.04064,-0.000237359
+0.04065,-0.000237359
+0.04066,-0.000237359
+0.04067,-0.000237359
+0.04068,-0.000237359
+0.04069,-0.000237359
+0.0407,-0.000237359
+0.04071,-0.000237359
+0.04072,-0.000237359
+0.04073,-0.000237359
+0.04074,-0.000237359
+0.04075,-0.000237359
+0.04076,-0.000237359
+0.04077,-0.000237359
+0.04078,-0.000237359
+0.04079,-0.000237359
+0.0408,-0.000237359
+0.04081,-0.000237359
+0.04082,-0.000237359
+0.04083,-0.000237359
+0.04084,-0.000237359
+0.04085,-0.000237359
+0.04086,-0.000237359
+0.04087,-0.000237359
+0.04088,-0.000237359
+0.04089,-0.000237359
+0.0409,-0.000237359
+0.04091,-0.000237359
+0.04092,-0.000237359
+0.04093,-0.000237359
+0.04094,-0.000237359
+0.04095,-0.000237359
+0.04096,-0.000237359
+0.04097,-0.000237359
+0.04098,-0.000237359
+0.04099,-0.000237359
+0.041,-0.000237359
+0.04101,-0.000237359
+0.04102,-0.000237359
+0.04103,-0.000237359
+0.04104,-0.000237359
+0.04105,-0.000237359
+0.04106,-0.000237359
+0.04107,-0.000237359
+0.04108,-0.000237359
+0.04109,-0.000237359
+0.0411,-0.000237359
+0.04111,-0.000237359
+0.04112,-0.000237359
+0.04113,-0.000237359
+0.04114,-0.000237359
+0.04115,-0.000237359
+0.04116,-0.000237359
+0.04117,-0.000237359
+0.04118,-0.000237359
+0.04119,-0.000237359
+0.0412,-0.000237359
+0.04121,-0.000237359
+0.04122,-0.000237359
+0.04123,-0.000237359
+0.04124,-0.000237359
+0.04125,-0.000237359
+0.04126,-0.000237359
+0.04127,-0.000237359
+0.04128,-0.000237359
+0.04129,-0.000237359
+0.0413,-0.000237359
+0.04131,-0.000237359
+0.04132,-0.000237359
+0.04133,-0.000237359
+0.04134,-0.000237359
+0.04135,-0.000237359
+0.04136,-0.000237359
+0.04137,-0.000237359
+0.04138,-0.000237359
+0.04139,-0.000237359
+0.0414,-0.000237359
+0.04141,-0.000237359
+0.04142,-0.000237359
+0.04143,-0.000237359
+0.04144,-0.000237359
+0.04145,-0.000237359
+0.04146,-0.000237359
+0.04147,-0.000237359
+0.04148,-0.000237359
+0.04149,-0.000237359
+0.0415,-0.000237359
+0.04151,-0.000237359
+0.04152,-0.000237359
+0.04153,-0.000237359
+0.04154,-0.000237359
+0.04155,-0.000237359
+0.04156,-0.000237359
+0.04157,-0.000237359
+0.04158,-0.000237359
+0.04159,-0.000237359
+0.0416,-0.000237359
+0.04161,-0.000237359
+0.04162,-0.000237359
+0.04163,-0.000237359
+0.04164,-0.000237359
+0.04165,-0.000237359
+0.04166,-0.000237359
+0.04167,-0.000237359
+0.04168,-0.000237359
+0.04169,-0.000237359
+0.0417,-0.000237359
+0.04171,-0.000237359
+0.04172,-0.000237359
+0.04173,-0.000237359
+0.04174,-0.000237359
+0.04175,-0.000237359
+0.04176,-0.000237359
+0.04177,-0.000237359
+0.04178,-0.000237359
+0.04179,-0.000237359
+0.0418,-0.000237359
+0.04181,-0.000237359
+0.04182,-0.000237359
+0.04183,-0.000237359
+0.04184,-0.000237359
+0.04185,-0.000237359
+0.04186,-0.000237359
+0.04187,-0.000237359
+0.04188,-0.000237359
+0.04189,-0.000237359
+0.0419,-0.000237359
+0.04191,-0.000237359
+0.04192,-0.000237359
+0.04193,-0.000237359
+0.04194,-0.000237359
+0.04195,-0.000237359
+0.04196,-0.000237359
+0.04197,-0.000237359
+0.04198,-0.000237359
+0.04199,-0.000237359
+0.042,-0.000237359
+0.04201,-0.000237359
+0.04202,-0.000237359
+0.04203,-0.000237359
+0.04204,-0.000237359
+0.04205,-0.000237359
+0.04206,-0.000237359
+0.04207,-0.000237359
+0.04208,-0.000237359
+0.04209,-0.000237359
+0.0421,-0.000237359
+0.04211,-0.000237359
+0.04212,-0.000237359
+0.04213,-0.000237359
+0.04214,-0.000237359
+0.04215,-0.000237359
+0.04216,-0.000237359
+0.04217,-0.000237359
+0.04218,-0.000237359
+0.04219,-0.000237359
+0.0422,-0.000237359
+0.04221,-0.000237359
+0.04222,-0.000237359
+0.04223,-0.000237359
+0.04224,-0.000237359
+0.04225,-0.000237359
+0.04226,-0.000237359
+0.04227,-0.000237359
+0.04228,-0.000237359
+0.04229,-0.000237359
+0.0423,-0.000237359
+0.04231,-0.000237359
+0.04232,-0.000237359
+0.04233,-0.000237359
+0.04234,-0.000237359
+0.04235,-0.000237359
+0.04236,-0.000237359
+0.04237,-0.000237359
+0.04238,-0.000237359
+0.04239,-0.000237359
+0.0424,-0.000237359
+0.04241,-0.000237359
+0.04242,-0.000237359
+0.04243,-0.000237359
+0.04244,-0.000237359
+0.04245,-0.000237359
+0.04246,-0.000237359
+0.04247,-0.000237359
+0.04248,-0.000237359
+0.04249,-0.000237359
+0.0425,-0.000237359
+0.04251,-0.000237359
+0.04252,-0.000237359
+0.04253,-0.000237359
+0.04254,-0.000237359
+0.04255,-0.000237359
+0.04256,-0.000237359
+0.04257,-0.000237359
+0.04258,-0.000237359
+0.04259,-0.000237359
+0.0426,-0.000237359
+0.04261,-0.000237359
+0.04262,-0.000237359
+0.04263,-0.000237359
+0.04264,-0.000237359
+0.04265,-0.000237359
+0.04266,-0.000237359
+0.04267,-0.000237359
+0.04268,-0.000237359
+0.04269,-0.000237359
+0.0427,-0.000237359
+0.04271,-0.000237359
+0.04272,-0.000237359
+0.04273,-0.000237359
+0.04274,-0.000237359
+0.04275,-0.000237359
+0.04276,-0.000237359
+0.04277,-0.000237359
+0.04278,-0.000237359
+0.04279,-0.000237359
+0.0428,-0.000237359
+0.04281,-0.000237359
+0.04282,-0.000237359
+0.04283,-0.000237359
+0.04284,-0.000237359
+0.04285,-0.000237359
+0.04286,-0.000237359
+0.04287,-0.000237359
+0.04288,-0.000237359
+0.04289,-0.000237359
+0.0429,-0.000237359
+0.04291,-0.000237359
+0.04292,-0.000237359
+0.04293,-0.000237359
+0.04294,-0.000237359
+0.04295,-0.000237359
+0.04296,-0.000237359
+0.04297,-0.000237359
+0.04298,-0.000237359
+0.04299,-0.000237359
+0.043,-0.000237359
+0.04301,-0.000237359
+0.04302,-0.000237359
+0.04303,-0.000237359
+0.04304,-0.000237359
+0.04305,-0.000237359
+0.04306,-0.000237359
+0.04307,-0.000237359
+0.04308,-0.000237359
+0.04309,-0.000237359
+0.0431,-0.000237359
+0.04311,-0.000237359
+0.04312,-0.000237359
+0.04313,-0.000237359
+0.04314,-0.000237359
+0.04315,-0.000237359
+0.04316,-0.000237359
+0.04317,-0.000237359
+0.04318,-0.000237359
+0.04319,-0.000237359
+0.0432,-0.000237359
+0.04321,-0.000237359
+0.04322,-0.000237359
+0.04323,-0.000237359
+0.04324,-0.000237359
+0.04325,-0.000237359
+0.04326,-0.000237359
+0.04327,-0.000237359
+0.04328,-0.000237359
+0.04329,-0.000237359
+0.0433,-0.000237359
+0.04331,-0.000237359
+0.04332,-0.000237359
+0.04333,-0.000237359
+0.04334,-0.000237359
+0.04335,-0.000237359
+0.04336,-0.000237359
+0.04337,-0.000237359
+0.04338,-0.000237359
+0.04339,-0.000237359
+0.0434,-0.000237359
+0.04341,-0.000237359
+0.04342,-0.000237359
+0.04343,-0.000237359
+0.04344,-0.000237359
+0.04345,-0.000237359
+0.04346,-0.000237359
+0.04347,-0.000237359
+0.04348,-0.000237359
+0.04349,-0.000237359
+0.0435,-0.000237359
+0.04351,-0.000237359
+0.04352,-0.000237359
+0.04353,-0.000237359
+0.04354,-0.000237359
+0.04355,-0.000237359
+0.04356,-0.000237359
+0.04357,-0.000237359
+0.04358,-0.000237359
+0.04359,-0.000237359
+0.0436,-0.000237359
+0.04361,-0.000237359
+0.04362,-0.000237359
+0.04363,-0.000237359
+0.04364,-0.000237359
+0.04365,-0.000237359
+0.04366,-0.000237359
+0.04367,-0.000237359
+0.04368,-0.000237359
+0.04369,-0.000237359
+0.0437,-0.000237359
+0.04371,-0.000237359
+0.04372,-0.000237359
+0.04373,-0.000237359
+0.04374,-0.000237359
+0.04375,-0.000237359
+0.04376,-0.000237359
+0.04377,-0.000237359
+0.04378,-0.000237359
+0.04379,-0.000237359
+0.0438,-0.000237359
+0.04381,-0.000237359
+0.04382,-0.000237359
+0.04383,-0.000237359
+0.04384,-0.000237359
+0.04385,-0.000237359
+0.04386,-0.000237359
+0.04387,-0.000237359
+0.04388,-0.000237359
+0.04389,-0.000237359
+0.0439,-0.000237359
+0.04391,-0.000237359
+0.04392,-0.000237359
+0.04393,-0.000237359
+0.04394,-0.000237359
+0.04395,-0.000237359
+0.04396,-0.000237359
+0.04397,-0.000237359
+0.04398,-0.000237359
+0.04399,-0.000237359
+0.044,-0.000237359
+0.04401,-0.000237359
+0.04402,-0.000237359
+0.04403,-0.000237359
+0.04404,-0.000237359
+0.04405,-0.000237359
+0.04406,-0.000237359
+0.04407,-0.000237359
+0.04408,-0.000237359
+0.04409,-0.000237359
+0.0441,-0.000237359
+0.04411,-0.000237359
+0.04412,-0.000237359
+0.04413,-0.000237359
+0.04414,-0.000237359
+0.04415,-0.000237359
+0.04416,-0.000237359
+0.04417,-0.000237359
+0.04418,-0.000237359
+0.04419,-0.000237359
+0.0442,-0.000237359
+0.04421,-0.000237359
+0.04422,-0.000237359
+0.04423,-0.000237359
+0.04424,-0.000237359
+0.04425,-0.000237359
+0.04426,-0.000237359
+0.04427,-0.000237359
+0.04428,-0.000237359
+0.04429,-0.000237359
+0.0443,-0.000237359
+0.04431,-0.000237359
+0.04432,-0.000237359
+0.04433,-0.000237359
+0.04434,-0.000237359
+0.04435,-0.000237359
+0.04436,-0.000237359
+0.04437,-0.000237359
+0.04438,-0.000237359
+0.04439,-0.000237359
+0.0444,-0.000237359
+0.04441,-0.000237359
+0.04442,-0.000237359
+0.04443,-0.000237359
+0.04444,-0.000237359
+0.04445,-0.000237359
+0.04446,-0.000237359
+0.04447,-0.000237359
+0.04448,-0.000237359
+0.04449,-0.000237359
+0.0445,-0.000237359
+0.04451,-0.000237359
+0.04452,-0.000237359
+0.04453,-0.000237359
+0.04454,-0.000237359
+0.04455,-0.000237359
+0.04456,-0.000237359
+0.04457,-0.000237359
+0.04458,-0.000237359
+0.04459,-0.000237359
+0.0446,-0.000237359
+0.04461,-0.000237359
+0.04462,-0.000237359
+0.04463,-0.000237359
+0.04464,-0.000237359
+0.04465,-0.000237359
+0.04466,-0.000237359
+0.04467,-0.000237359
+0.04468,-0.000237359
+0.04469,-0.000237359
+0.0447,-0.000237359
+0.04471,-0.000237359
+0.04472,-0.000237359
+0.04473,-0.000237359
+0.04474,-0.000237359
+0.04475,-0.000237359
+0.04476,-0.000237359
+0.04477,-0.000237359
+0.04478,-0.000237359
+0.04479,-0.000237359
+0.0448,-0.000237359
+0.04481,-0.000237359
+0.04482,-0.000237359
+0.04483,-0.000237359
+0.04484,-0.000237359
+0.04485,-0.000237359
+0.04486,-0.000237359
+0.04487,-0.000237359
+0.04488,-0.000237359
+0.04489,-0.000237359
+0.0449,-0.000237359
+0.04491,-0.000237359
+0.04492,-0.000237359
+0.04493,-0.000237359
+0.04494,-0.000237359
+0.04495,-0.000237359
+0.04496,-0.000237359
+0.04497,-0.000237359
+0.04498,-0.000237359
+0.04499,-0.000237359
+0.045,-0.000237359
+0.04501,-0.000237359
+0.04502,-0.000237359
+0.04503,-0.000237359
+0.04504,-0.000237359
+0.04505,-0.000237359
+0.04506,-0.000237359
+0.04507,-0.000237359
+0.04508,-0.000237359
+0.04509,-0.000237359
+0.0451,-0.000237359
+0.04511,-0.000237359
+0.04512,-0.000237359
+0.04513,-0.000237359
+0.04514,-0.000237359
+0.04515,-0.000237359
+0.04516,-0.000237359
+0.04517,-0.000237359
+0.04518,-0.000237359
+0.04519,-0.000237359
+0.0452,-0.000237359
+0.04521,-0.000237359
+0.04522,-0.000237359
+0.04523,-0.000237359
+0.04524,-0.000237359
+0.04525,-0.000237359
+0.04526,-0.000237359
+0.04527,-0.000237359
+0.04528,-0.000237359
+0.04529,-0.000237359
+0.0453,-0.000237359
+0.04531,-0.000237359
+0.04532,-0.000237359
+0.04533,-0.000237359
+0.04534,-0.000237359
+0.04535,-0.000237359
+0.04536,-0.000237359
+0.04537,-0.000237359
+0.04538,-0.000237359
+0.04539,-0.000237359
+0.0454,-0.000237359
+0.04541,-0.000237359
+0.04542,-0.000237359
+0.04543,-0.000237359
+0.04544,-0.000237359
+0.04545,-0.000237359
+0.04546,-0.000237359
+0.04547,-0.000237359
+0.04548,-0.000237359
+0.04549,-0.000237359
+0.0455,-0.000237359
+0.04551,-0.000237359
+0.04552,-0.000237359
+0.04553,-0.000237359
+0.04554,-0.000237359
+0.04555,-0.000237359
+0.04556,-0.000237359
+0.04557,-0.000237359
+0.04558,-0.000237359
+0.04559,-0.000237359
+0.0456,-0.000237359
+0.04561,-0.000237359
+0.04562,-0.000237359
+0.04563,-0.000237359
+0.04564,-0.000237359
+0.04565,-0.000237359
+0.04566,-0.000237359
+0.04567,-0.000237359
+0.04568,-0.000237359
+0.04569,-0.000237359
+0.0457,-0.000237359
+0.04571,-0.000237359
+0.04572,-0.000237359
+0.04573,-0.000237359
+0.04574,-0.000237359
+0.04575,-0.000237359
+0.04576,-0.000237359
+0.04577,-0.000237359
+0.04578,-0.000237359
+0.04579,-0.000237359
+0.0458,-0.000237359
+0.04581,-0.000237359
+0.04582,-0.000237359
+0.04583,-0.000237359
+0.04584,-0.000237359
+0.04585,-0.000237359
+0.04586,-0.000237359
+0.04587,-0.000237359
+0.04588,-0.000237359
+0.04589,-0.000237359
+0.0459,-0.000237359
+0.04591,-0.000237359
+0.04592,-0.000237359
+0.04593,-0.000237359
+0.04594,-0.000237359
+0.04595,-0.000237359
+0.04596,-0.000237359
+0.04597,-0.000237359
+0.04598,-0.000237359
+0.04599,-0.000237359
+0.046,-0.000237359
+0.04601,-0.000237359
+0.04602,-0.000237359
+0.04603,-0.000237359
+0.04604,-0.000237359
+0.04605,-0.000237359
+0.04606,-0.000237359
+0.04607,-0.000237359
+0.04608,-0.000237359
+0.04609,-0.000237359
+0.0461,-0.000237359
+0.04611,-0.000237359
+0.04612,-0.000237359
+0.04613,-0.000237359
+0.04614,-0.000237359
+0.04615,-0.000237359
+0.04616,-0.000237359
+0.04617,-0.000237359
+0.04618,-0.000237359
+0.04619,-0.000237359
+0.0462,-0.000237359
+0.04621,-0.000237359
+0.04622,-0.000237359
+0.04623,-0.000237359
+0.04624,-0.000237359
+0.04625,-0.000237359
+0.04626,-0.000237359
+0.04627,-0.000237359
+0.04628,-0.000237359
+0.04629,-0.000237359
+0.0463,-0.000237359
+0.04631,-0.000237359
+0.04632,-0.000237359
+0.04633,-0.000237359
+0.04634,-0.000237359
+0.04635,-0.000237359
+0.04636,-0.000237359
+0.04637,-0.000237359
+0.04638,-0.000237359
+0.04639,-0.000237359
+0.0464,-0.000237359
+0.04641,-0.000237359
+0.04642,-0.000237359
+0.04643,-0.000237359
+0.04644,-0.000237359
+0.04645,-0.000237359
+0.04646,-0.000237359
+0.04647,-0.000237359
+0.04648,-0.000237359
+0.04649,-0.000237359
+0.0465,-0.000237359
+0.04651,-0.000237359
+0.04652,-0.000237359
+0.04653,-0.000237359
+0.04654,-0.000237359
+0.04655,-0.000237359
+0.04656,-0.000237359
+0.04657,-0.000237359
+0.04658,-0.000237359
+0.04659,-0.000237359
+0.0466,-0.000237359
+0.04661,-0.000237359
+0.04662,-0.000237359
+0.04663,-0.000237359
+0.04664,-0.000237359
+0.04665,-0.000237359
+0.04666,-0.000237359
+0.04667,-0.000237359
+0.04668,-0.000237359
+0.04669,-0.000237359
+0.0467,-0.000237359
+0.04671,-0.000237359
+0.04672,-0.000237359
+0.04673,-0.000237359
+0.04674,-0.000237359
+0.04675,-0.000237359
+0.04676,-0.000237359
+0.04677,-0.000237359
+0.04678,-0.000237359
+0.04679,-0.000237359
+0.0468,-0.000237359
+0.04681,-0.000237359
+0.04682,-0.000237359
+0.04683,-0.000237359
+0.04684,-0.000237359
+0.04685,-0.000237359
+0.04686,-0.000237359
+0.04687,-0.000237359
+0.04688,-0.000237359
+0.04689,-0.000237359
+0.0469,-0.000237359
+0.04691,-0.000237359
+0.04692,-0.000237359
+0.04693,-0.000237359
+0.04694,-0.000237359
+0.04695,-0.000237359
+0.04696,-0.000237359
+0.04697,-0.000237359
+0.04698,-0.000237359
+0.04699,-0.000237359
+0.047,-0.000237359
+0.04701,-0.000237359
+0.04702,-0.000237359
+0.04703,-0.000237359
+0.04704,-0.000237359
+0.04705,-0.000237359
+0.04706,-0.000237359
+0.04707,-0.000237359
+0.04708,-0.000237359
+0.04709,-0.000237359
+0.0471,-0.000237359
+0.04711,-0.000237359
+0.04712,-0.000237359
+0.04713,-0.000237359
+0.04714,-0.000237359
+0.04715,-0.000237359
+0.04716,-0.000237359
+0.04717,-0.000237359
+0.04718,-0.000237359
+0.04719,-0.000237359
+0.0472,-0.000237359
+0.04721,-0.000237359
+0.04722,-0.000237359
+0.04723,-0.000237359
+0.04724,-0.000237359
+0.04725,-0.000237359
+0.04726,-0.000237359
+0.04727,-0.000237359
+0.04728,-0.000237359
+0.04729,-0.000237359
+0.0473,-0.000237359
+0.04731,-0.000237359
+0.04732,-0.000237359
+0.04733,-0.000237359
+0.04734,-0.000237359
+0.04735,-0.000237359
+0.04736,-0.000237359
+0.04737,-0.000237359
+0.04738,-0.000237359
+0.04739,-0.000237359
+0.0474,-0.000237359
+0.04741,-0.000237359
+0.04742,-0.000237359
+0.04743,-0.000237359
+0.04744,-0.000237359
+0.04745,-0.000237359
+0.04746,-0.000237359
+0.04747,-0.000237359
+0.04748,-0.000237359
+0.04749,-0.000237359
+0.0475,-0.000237359
+0.04751,-0.000237359
+0.04752,-0.000237359
+0.04753,-0.000237359
+0.04754,-0.000237359
+0.04755,-0.000237359
+0.04756,-0.000237359
+0.04757,-0.000237359
+0.04758,-0.000237359
+0.04759,-0.000237359
+0.0476,-0.000237359
+0.04761,-0.000237359
+0.04762,-0.000237359
+0.04763,-0.000237359
+0.04764,-0.000237359
+0.04765,-0.000237359
+0.04766,-0.000237359
+0.04767,-0.000237359
+0.04768,-0.000237359
+0.04769,-0.000237359
+0.0477,-0.000237359
+0.04771,-0.000237359
+0.04772,-0.000237359
+0.04773,-0.000237359
+0.04774,-0.000237359
+0.04775,-0.000237359
+0.04776,-0.000237359
+0.04777,-0.000237359
+0.04778,-0.000237359
+0.04779,-0.000237359
+0.0478,-0.000237359
+0.04781,-0.000237359
+0.04782,-0.000237359
+0.04783,-0.000237359
+0.04784,-0.000237359
+0.04785,-0.000237359
+0.04786,-0.000237359
+0.04787,-0.000237359
+0.04788,-0.000237359
+0.04789,-0.000237359
+0.0479,-0.000237359
+0.04791,-0.000237359
+0.04792,-0.000237359
+0.04793,-0.000237359
+0.04794,-0.000237359
+0.04795,-0.000237359
+0.04796,-0.000237359
+0.04797,-0.000237359
+0.04798,-0.000237359
+0.04799,-0.000237359
+0.048,-0.000237359
+0.04801,-0.000237359
+0.04802,-0.000237359
+0.04803,-0.000237359
+0.04804,-0.000237359
+0.04805,-0.000237359
+0.04806,-0.000237359
+0.04807,-0.000237359
+0.04808,-0.000237359
+0.04809,-0.000237359
+0.0481,-0.000237359
+0.04811,-0.000237359
+0.04812,-0.000237359
+0.04813,-0.000237359
+0.04814,-0.000237359
+0.04815,-0.000237359
+0.04816,-0.000237359
+0.04817,-0.000237359
+0.04818,-0.000237359
+0.04819,-0.000237359
+0.0482,-0.000237359
+0.04821,-0.000237359
+0.04822,-0.000237359
+0.04823,-0.000237359
+0.04824,-0.000237359
+0.04825,-0.000237359
+0.04826,-0.000237359
+0.04827,-0.000237359
+0.04828,-0.000237359
+0.04829,-0.000237359
+0.0483,-0.000237359
+0.04831,-0.000237359
+0.04832,-0.000237359
+0.04833,-0.000237359
+0.04834,-0.000237359
+0.04835,-0.000237359
+0.04836,-0.000237359
+0.04837,-0.000237359
+0.04838,-0.000237359
+0.04839,-0.000237359
+0.0484,-0.000237359
+0.04841,-0.000237359
+0.04842,-0.000237359
+0.04843,-0.000237359
+0.04844,-0.000237359
+0.04845,-0.000237359
+0.04846,-0.000237359
+0.04847,-0.000237359
+0.04848,-0.000237359
+0.04849,-0.000237359
+0.0485,-0.000237359
+0.04851,-0.000237359
+0.04852,-0.000237359
+0.04853,-0.000237359
+0.04854,-0.000237359
+0.04855,-0.000237359
+0.04856,-0.000237359
+0.04857,-0.000237359
+0.04858,-0.000237359
+0.04859,-0.000237359
+0.0486,-0.000237359
+0.04861,-0.000237359
+0.04862,-0.000237359
+0.04863,-0.000237359
+0.04864,-0.000237359
+0.04865,-0.000237359
+0.04866,-0.000237359
+0.04867,-0.000237359
+0.04868,-0.000237359
+0.04869,-0.000237359
+0.0487,-0.000237359
+0.04871,-0.000237359
+0.04872,-0.000237359
+0.04873,-0.000237359
+0.04874,-0.000237359
+0.04875,-0.000237359
+0.04876,-0.000237359
+0.04877,-0.000237359
+0.04878,-0.000237359
+0.04879,-0.000237359
+0.0488,-0.000237359
+0.04881,-0.000237359
+0.04882,-0.000237359
+0.04883,-0.000237359
+0.04884,-0.000237359
+0.04885,-0.000237359
+0.04886,-0.000237359
+0.04887,-0.000237359
+0.04888,-0.000237359
+0.04889,-0.000237359
+0.0489,-0.000237359
+0.04891,-0.000237359
+0.04892,-0.000237359
+0.04893,-0.000237359
+0.04894,-0.000237359
+0.04895,-0.000237359
+0.04896,-0.000237359
+0.04897,-0.000237359
+0.04898,-0.000237359
+0.04899,-0.000237359
+0.049,-0.000237359
+0.04901,-0.000237359
+0.04902,-0.000237359
+0.04903,-0.000237359
+0.04904,-0.000237359
+0.04905,-0.000237359
+0.04906,-0.000237359
+0.04907,-0.000237359
+0.04908,-0.000237359
+0.04909,-0.000237359
+0.0491,-0.000237359
+0.04911,-0.000237359
+0.04912,-0.000237359
+0.04913,-0.000237359
+0.04914,-0.000237359
+0.04915,-0.000237359
+0.04916,-0.000237359
+0.04917,-0.000237359
+0.04918,-0.000237359
+0.04919,-0.000237359
+0.0492,-0.000237359
+0.04921,-0.000237359
+0.04922,-0.000237359
+0.04923,-0.000237359
+0.04924,-0.000237359
+0.04925,-0.000237359
+0.04926,-0.000237359
+0.04927,-0.000237359
+0.04928,-0.000237359
+0.04929,-0.000237359
+0.0493,-0.000237359
+0.04931,-0.000237359
+0.04932,-0.000237359
+0.04933,-0.000237359
+0.04934,-0.000237359
+0.04935,-0.000237359
+0.04936,-0.000237359
+0.04937,-0.000237359
+0.04938,-0.000237359
+0.04939,-0.000237359
+0.0494,-0.000237359
+0.04941,-0.000237359
+0.04942,-0.000237359
+0.04943,-0.000237359
+0.04944,-0.000237359
+0.04945,-0.000237359
+0.04946,-0.000237359
+0.04947,-0.000237359
+0.04948,-0.000237359
+0.04949,-0.000237359
+0.0495,-0.000237359
+0.04951,-0.000237359
+0.04952,-0.000237359
+0.04953,-0.000237359
+0.04954,-0.000237359
+0.04955,-0.000237359
+0.04956,-0.000237359
+0.04957,-0.000237359
+0.04958,-0.000237359
+0.04959,-0.000237359
+0.0496,-0.000237359
+0.04961,-0.000237359
+0.04962,-0.000237359
+0.04963,-0.000237359
+0.04964,-0.000237359
+0.04965,-0.000237359
+0.04966,-0.000237359
+0.04967,-0.000237359
+0.04968,-0.000237359
+0.04969,-0.000237359
+0.0497,-0.000237359
+0.04971,-0.000237359
+0.04972,-0.000237359
+0.04973,-0.000237359
+0.04974,-0.000237359
+0.04975,-0.000237359
+0.04976,-0.000237359
+0.04977,-0.000237359
+0.04978,-0.000237359
+0.04979,-0.000237359
+0.0498,-0.000237359
+0.04981,-0.000237359
+0.04982,-0.000237359
+0.04983,-0.000237359
+0.04984,-0.000237359
+0.04985,-0.000237359
+0.04986,-0.000237359
+0.04987,-0.000237359
+0.04988,-0.000237359
+0.04989,-0.000237359
+0.0499,-0.000237359
+0.04991,-0.000237359
+0.04992,-0.000237359
+0.04993,-0.000237359
+0.04994,-0.000237359
+0.04995,-0.000237359
+0.04996,-0.000237359
+0.04997,-0.000237359
+0.04998,-0.000237359
+0.04999,-0.000237359
+0.05,-0.000237359
+0.05,-0.000237359
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_1.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_1.dia.ref
new file mode 100755
index 000000000..f7749e20f
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_1.dia.ref
@@ -0,0 +1,14 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_1.csv", ",", [], "string");
+// =============================================================================
+assert_checkequal(size(r, "c"), 2);
+assert_checkequal(size(r, "r"), 7534);
+assert_checkequal(r(1,1), "Time");
+assert_checkequal(r(1,2), "ecart");
+assert_checkequal(r(7534,1), "0.05");
+assert_checkequal(r(7534,2), "-0.000237359");
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_1.tst b/modules/spreadsheet/tests/nonreg_tests/bug_1.tst
new file mode 100755
index 000000000..f7749e20f
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_1.tst
@@ -0,0 +1,14 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_1.csv", ",", [], "string");
+// =============================================================================
+assert_checkequal(size(r, "c"), 2);
+assert_checkequal(size(r, "r"), 7534);
+assert_checkequal(r(1,1), "Time");
+assert_checkequal(r(1,2), "ecart");
+assert_checkequal(r(7534,1), "0.05");
+assert_checkequal(r(7534,2), "-0.000237359");
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_10556.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_10556.dia.ref
new file mode 100755
index 000000000..3d47d8127
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_10556.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 10556 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10556
+//
+// <-- Short Description -->
+// readxls produced wrong results
+//
+spreadsheet = readxls(SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_10556.xls");
+assert_checkequal(size(spreadsheet(1)), [12 10]);
+xls = spreadsheet(1);
+assert_checkequal(xls(2, 2), 3.06);
+assert_checkequal(xls(2,1), "OK++ AL 1067");
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_10556.tst b/modules/spreadsheet/tests/nonreg_tests/bug_10556.tst
new file mode 100755
index 000000000..5c8b43260
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_10556.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 10556 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10556
+//
+// <-- Short Description -->
+// readxls produced wrong results
+//
+
+spreadsheet = readxls(SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_10556.xls");
+assert_checkequal(size(spreadsheet(1)), [12 10]);
+xls = spreadsheet(1);
+assert_checkequal(xls(2, 2), 3.06);
+assert_checkequal(xls(2,1), "OK++ AL 1067"); \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_10556.xls b/modules/spreadsheet/tests/nonreg_tests/bug_10556.xls
new file mode 100755
index 000000000..15c8a4ba1
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_10556.xls
Binary files differ
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11890.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_11890.dia.ref
new file mode 100755
index 000000000..35882659a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11890.dia.ref
@@ -0,0 +1,34 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 11890 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11890
+//
+// <-- Short Description -->
+// Wrong parsing with empty char at the end of the line
+//
+content_ref = [ "1;2;3" ..
+"4;5;"]
+ content_ref =
+
+!1;2;3 4;5; !
+filename=TMPDIR+"/foo.csv";
+mputl(content_ref,filename);
+content_2=read_csv(filename,";");
+assert_checkequal(content_2,["1","2","3";"4","5",""]);
+content_2(2,3)="42";
+assert_checkequal(content_2,["1","2","3";"4","5","42"]);
+assert_checkequal(evstr(content_2),[1,2,3;4,5,42]);
+mputl(content_ref,filename);
+content_2=csvRead(filename,";");
+assert_checkequal(content_2,[1,2,3;4,5,%nan]);
+content_2(2,3)=42;
+assert_checkequal(content_2,[1,2,3;4,5,42]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11890.tst b/modules/spreadsheet/tests/nonreg_tests/bug_11890.tst
new file mode 100755
index 000000000..6856cb79c
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11890.tst
@@ -0,0 +1,37 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 11890 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11890
+//
+// <-- Short Description -->
+// Wrong parsing with empty char at the end of the line
+//
+content_ref = [ "1;2;3" ..
+"4;5;"]
+filename=TMPDIR+"/foo.csv";
+
+mputl(content_ref,filename);
+
+content_2=read_csv(filename,";");
+assert_checkequal(content_2,["1","2","3";"4","5",""]);
+
+content_2(2,3)="42";
+assert_checkequal(content_2,["1","2","3";"4","5","42"]);
+
+assert_checkequal(evstr(content_2),[1,2,3;4,5,42]);
+
+mputl(content_ref,filename);
+
+content_2=csvRead(filename,";");
+assert_checkequal(content_2,[1,2,3;4,5,%nan]);
+content_2(2,3)=42;
+assert_checkequal(content_2,[1,2,3;4,5,42]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11976.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_11976.dia.ref
new file mode 100755
index 000000000..090010942
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11976.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 11976 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11976
+//
+// <-- Short Description -->
+// decimal parameter must be '.' or ','
+//
+some_data = ["67200.99976"];
+iErr = execstr("data_time = csvTextScan(some_data, ""."", """", ""double"")", "errcatch");
+assert_checktrue(iErr <> 0);
+data_time = csvTextScan(some_data, ".", ",", "double");
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11976.tst b/modules/spreadsheet/tests/nonreg_tests/bug_11976.tst
new file mode 100755
index 000000000..c4cbdff3d
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11976.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 11976 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11976
+//
+// <-- Short Description -->
+// decimal parameter must be '.' or ','
+//
+
+some_data = ["67200.99976"];
+iErr = execstr("data_time = csvTextScan(some_data, ""."", """", ""double"")", "errcatch");
+assert_checktrue(iErr <> 0);
+data_time = csvTextScan(some_data, ".", ",", "double");
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11991.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_11991.dia.ref
new file mode 100755
index 000000000..da2b885b4
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11991.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 11991 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11991
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+M=[1:10]*0.1;
+filename=TMPDIR+"/data.csv";
+csvWrite(M',filename);
+content=mgetl(filename);
+assert_checkequal(size(content,"*"), 10);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11991.tst b/modules/spreadsheet/tests/nonreg_tests/bug_11991.tst
new file mode 100755
index 000000000..479e0c0f2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11991.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 11991 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11991
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+M=[1:10]*0.1;
+filename=TMPDIR+"/data.csv";
+csvWrite(M',filename);
+
+content=mgetl(filename);
+assert_checkequal(size(content,"*"), 10);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11999.csv b/modules/spreadsheet/tests/nonreg_tests/bug_11999.csv
new file mode 100755
index 000000000..bce02409a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11999.csv
@@ -0,0 +1,3 @@
+foo;bar;foo
+
+foo2;bar2;bar3
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11999.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_11999.dia.ref
new file mode 100755
index 000000000..3d9b5d06b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11999.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- Non-regression test for bug 11999 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11999
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+filename = SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_11999.csv";
+csvDefault("blank", "off"); // Default behavior in 5.4.0, changed 5.4.1 to "on"
+errMsg = msprintf(gettext("%s: can not read file %s: Error in the column structure\n"), "csvRead", filename);
+assert_checkerror("a=csvRead(filename, "";"", [], ""string"");", errMsg, 999);
+Warning: Inconsistency found in the columns. At line 2, found 0 columns while the previous had 3.
+csvDefault("blank", "on");
+a=csvRead(filename, ";", [], "string");
+assert_checkequal(a,["foo", "bar", "foo"; "foo2", "bar2", "bar3"]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_11999.tst b/modules/spreadsheet/tests/nonreg_tests/bug_11999.tst
new file mode 100755
index 000000000..be89073fe
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_11999.tst
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- Non-regression test for bug 11999 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11999
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+filename = SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_11999.csv";
+
+csvDefault("blank", "off"); // Default behavior in 5.4.0, changed 5.4.1 to "on"
+errMsg = msprintf(gettext("%s: can not read file %s: Error in the column structure\n"), "csvRead", filename);
+assert_checkerror("a=csvRead(filename, "";"", [], ""string"");", errMsg, 999);
+
+csvDefault("blank", "on");
+a=csvRead(filename, ";", [], "string");
+assert_checkequal(a,["foo", "bar", "foo"; "foo2", "bar2", "bar3"]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12076.csv b/modules/spreadsheet/tests/nonreg_tests/bug_12076.csv
new file mode 100755
index 000000000..1d65bca83
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12076.csv
@@ -0,0 +1,3 @@
+TEXT;;;
+1;2;3;
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12076.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12076.dia.ref
new file mode 100755
index 000000000..6e52c5faf
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12076.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12076 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12076
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+filename=SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_12076.csv";
+a=csvRead(filename,";");
+assert_checkequal(size(a),[2, 4]);
+ref=[%nan,%nan,%nan,%nan;1,2,3,%nan];
+assert_checkequal(a,ref);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12076.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12076.tst
new file mode 100755
index 000000000..6e52c5faf
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12076.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12076 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12076
+//
+// <-- Short Description -->
+// csvRead does not ignore blank lines
+//
+filename=SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_12076.csv";
+a=csvRead(filename,";");
+assert_checkequal(size(a),[2, 4]);
+ref=[%nan,%nan,%nan,%nan;1,2,3,%nan];
+assert_checkequal(a,ref);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12085.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12085.dia.ref
new file mode 100755
index 000000000..914f1ecc4
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12085.dia.ref
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12085 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12085
+//
+// <-- Short Description -->
+// On Windows csvWrite wrote wrong EOL.
+fileOut = TMPDIR + "/bug_12085.csv";
+stringOut = [1,1;1,1];
+data_ref = [49 44 49];
+if getos() == "Windows" then
+ eol = [13 10]; //CRLF
+elseif getos()=="Darwin" then
+ eol = [13]; //CR
+else
+ eol = [10]; //LF
+end
+ref = [data_ref, eol, data_ref, eol];
+csvWrite(stringOut, fileOut);
+stringIn = mgetl(fileOut);
+info = fileinfo(fileOut);
+fd = mopen(fileOut, "rb");
+data_read = mget(info(1), "c", fd);
+mclose(fd);
+assert_checkequal(data_read, ref);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12085.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12085.tst
new file mode 100755
index 000000000..3391f5746
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12085.tst
@@ -0,0 +1,38 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12085 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12085
+//
+// <-- Short Description -->
+// On Windows csvWrite wrote wrong EOL.
+
+fileOut = TMPDIR + "/bug_12085.csv";
+stringOut = [1,1;1,1];
+data_ref = [49 44 49];
+
+if getos() == "Windows" then
+ eol = [13 10]; //CRLF
+elseif getos()=="Darwin" then
+ eol = [13]; //CR
+else
+ eol = [10]; //LF
+end
+
+ref = [data_ref, eol, data_ref, eol];
+
+csvWrite(stringOut, fileOut);
+stringIn = mgetl(fileOut);
+
+info = fileinfo(fileOut);
+fd = mopen(fileOut, "rb");
+data_read = mget(info(1), "c", fd);
+mclose(fd);
+
+assert_checkequal(data_read, ref);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12140.csv b/modules/spreadsheet/tests/nonreg_tests/bug_12140.csv
new file mode 100755
index 000000000..810d21fd9
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12140.csv
@@ -0,0 +1,2 @@
+foo bar;bar foo;plop
+280;4,7309E-23;2,86982E-23
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12140.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12140.dia.ref
new file mode 100755
index 000000000..f06b77cb2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12140.dia.ref
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12140 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12140
+//
+// <-- Short Description -->
+// csvRead fails when comma is used as decimal mark
+//
+filename=SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_12140.csv";
+[Mss, comments] = csvRead(filename, ";" , "," , "double" , [] ,"/foo bar/");
+assert_checkfalse(Mss(1,2) == %nan);
+assert_checkfalse(Mss(1,3) == %nan);
+Mss_ref=[280,4.730900000000000068D-23, 2.869819999999999938D-23];
+assert_checkalmostequal(Mss(1,:), Mss_ref);
+Mss=mgetl(filename);
+M=csvTextScan(Mss(2:$,:),";",",");
+assert_checkalmostequal(M, Mss_ref);
+[Mss, comments] = csvRead(filename, ";" , "," , "string" , [] ,"/foo bar/");
+assert_checkequal(Mss,["280","4.7309E-23","2.86982E-23"]);
+[Mss, comments] = csvRead(filename, ";" , [] , "string" , [] ,"/foo bar/");
+assert_checkequal(Mss,["280","4,7309E-23","2,86982E-23"]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12140.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12140.tst
new file mode 100755
index 000000000..7bf1d2a03
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12140.tst
@@ -0,0 +1,34 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12140 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12140
+//
+// <-- Short Description -->
+// csvRead fails when comma is used as decimal mark
+//
+filename=SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_12140.csv";
+
+[Mss, comments] = csvRead(filename, ";" , "," , "double" , [] ,"/foo bar/");
+assert_checkfalse(Mss(1,2) == %nan);
+assert_checkfalse(Mss(1,3) == %nan);
+Mss_ref=[280,4.730900000000000068D-23, 2.869819999999999938D-23];
+
+assert_checkalmostequal(Mss(1,:), Mss_ref);
+Mss=mgetl(filename);
+M=csvTextScan(Mss(2:$,:),";",",");
+assert_checkalmostequal(M, Mss_ref);
+
+[Mss, comments] = csvRead(filename, ";" , "," , "string" , [] ,"/foo bar/");
+assert_checkequal(Mss,["280","4.7309E-23","2.86982E-23"]);
+
+[Mss, comments] = csvRead(filename, ";" , [] , "string" , [] ,"/foo bar/");
+assert_checkequal(Mss,["280","4,7309E-23","2,86982E-23"]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12144.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12144.dia.ref
new file mode 100755
index 000000000..c1dd7f78e
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12144.dia.ref
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12144 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12144
+//
+// <-- Short Description -->
+// csvRead triggers some errors about memory
+CSV = ["1,0,0,0,0"; ..
+"0,1,0,0,0"; ..
+"0,0,1,0,0"; ..
+"4,4,1,2,0"; ..
+"4,63,1,2,0"; ..
+"4,63,1,2,233"; ..
+"42,3,23,2,233"; ..
+];
+filename = fullfile(TMPDIR, 'foo.csv');
+mputl(CSV, filename);
+instr = "r = csvRead(filename, "" "", [], ""string"", [], [], [5 3 7 6]);";
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+assert_checkerror(instr, refMsg);
+mdelete(filename);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12144.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12144.tst
new file mode 100755
index 000000000..6ff3b98eb
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12144.tst
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12144 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12144
+//
+// <-- Short Description -->
+// csvRead triggers some errors about memory
+
+
+CSV = ["1,0,0,0,0"; ..
+"0,1,0,0,0"; ..
+"0,0,1,0,0"; ..
+"4,4,1,2,0"; ..
+"4,63,1,2,0"; ..
+"4,63,1,2,233"; ..
+"42,3,23,2,233"; ..
+];
+filename = fullfile(TMPDIR, 'foo.csv');
+mputl(CSV, filename);
+instr = "r = csvRead(filename, "" "", [], ""string"", [], [], [5 3 7 6]);";
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+assert_checkerror(instr, refMsg);
+mdelete(filename);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12220.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12220.dia.ref
new file mode 100755
index 000000000..9ee6b7de8
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12220.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12220 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12220
+//
+// <-- Short Description -->
+// csvTextScan unexpected behavior for missing data
+//
+content_ref = [ "26,12-10-2011 18:00,29.83,69.1,42,35.5,83,30.8,35.5,0,SSW,0,0,0" ..
+"27,12-10-2011 19:00,29.83,68.9,42,35.6,84,31.3,35.6,0,SSW,0,0,0" ..
+"28,12-10-2011 20:00,29.83,68.2,43,35.6,84,31.3,,,,,0,0" ..
+"29,12-10-2011 21:00,29.82,67.3,43,35.3,84,31,,,,,0,0" ];
+filename=TMPDIR+"/foo.csv";
+mputl(content_ref,filename);
+StrLines = mgetl(filename);
+StrMat1 = csvTextScan(StrLines(1), ',', '.', 'string');
+StrMat3 = csvTextScan(StrLines(3), ',', '.', 'string');
+assert_checkequal(size(StrMat1), size(StrMat3));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12220.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12220.tst
new file mode 100755
index 000000000..c8a8e52fa
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12220.tst
@@ -0,0 +1,31 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 12220 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12220
+//
+// <-- Short Description -->
+// csvTextScan unexpected behavior for missing data
+//
+
+content_ref = [ "26,12-10-2011 18:00,29.83,69.1,42,35.5,83,30.8,35.5,0,SSW,0,0,0" ..
+"27,12-10-2011 19:00,29.83,68.9,42,35.6,84,31.3,35.6,0,SSW,0,0,0" ..
+"28,12-10-2011 20:00,29.83,68.2,43,35.6,84,31.3,,,,,0,0" ..
+"29,12-10-2011 21:00,29.82,67.3,43,35.3,84,31,,,,,0,0" ];
+filename=TMPDIR+"/foo.csv";
+
+mputl(content_ref,filename);
+
+StrLines = mgetl(filename);
+StrMat1 = csvTextScan(StrLines(1), ',', '.', 'string');
+StrMat3 = csvTextScan(StrLines(3), ',', '.', 'string');
+
+assert_checkequal(size(StrMat1), size(StrMat3));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12246.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12246.tst
new file mode 100755
index 000000000..b08ee2e4b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12246.tst
@@ -0,0 +1,26 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon Marchetto
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// English imposed to compare error message
+// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 12246 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12246
+//
+// <-- Short Description -->
+// Check that an error message is returned when
+//reading invalid excel files (which have declared wrong colum/row count)
+
+xlsPath = SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_12246.xls";
+[fd,SST,Sheetnames,Sheetpos] = xls_open(xlsPath);
+
+errMsg = "xls_read: Failed to read expected data, may be invalid xls file.";
+assert_checkerror("[Value,TextInd] = xls_read(fd,Sheetpos(1))", errMsg);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12246.xls b/modules/spreadsheet/tests/nonreg_tests/bug_12246.xls
new file mode 100755
index 000000000..399a80a0b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12246.xls
Binary files differ
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12360.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12360.dia.ref
new file mode 100755
index 000000000..1f94af704
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12360.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12360 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12360
+//
+// <-- Short Description -->
+// Imaginary part of purely real complex is printed in CSV
+realMatrix = [0.211, 3, -4.0, 0.0];
+purelyRealComplexMatrix = complex(realMatrix);
+filename = fullfile(TMPDIR, 'bug_12360.csv');
+write_csv(purelyRealComplexMatrix, filename, ascii(9), ".", "%5.3f");
+path = SCI + "/modules/spreadsheet/tests/nonreg_tests";
+assert_checkfilesequal(filename, fullfile(path, "bug_12360.ref.csv"));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12360.ref.csv b/modules/spreadsheet/tests/nonreg_tests/bug_12360.ref.csv
new file mode 100755
index 000000000..8761243a1
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12360.ref.csv
@@ -0,0 +1 @@
+0.211 3.000 -4.000 0.000
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12360.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12360.tst
new file mode 100755
index 000000000..360126128
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12360.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12360 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12360
+//
+// <-- Short Description -->
+// Imaginary part of purely real complex is printed in CSV
+
+realMatrix = [0.211, 3, -4.0, 0.0];
+purelyRealComplexMatrix = complex(realMatrix);
+
+filename = fullfile(TMPDIR, 'bug_12360.csv');
+write_csv(purelyRealComplexMatrix, filename, ascii(9), ".", "%5.3f");
+
+path = SCI + "/modules/spreadsheet/tests/nonreg_tests";
+assert_checkfilesequal(filename, fullfile(path, "bug_12360.ref.csv")); \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12475.csv b/modules/spreadsheet/tests/nonreg_tests/bug_12475.csv
new file mode 100755
index 000000000..d412cc9f2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12475.csv
@@ -0,0 +1,2 @@
+Model,MDO4014-3
+FREQUENCY,"MATH<FFT(CH1, BLACKMANHARRIS, LOGRMS)>"
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12475.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12475.dia.ref
new file mode 100755
index 000000000..e33211cb5
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12475.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12475 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12475
+//
+// <-- Short Description -->
+// csvRead does not support double quotes
+csvPath = SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_12475.csv";
+val = csvRead(csvPath, ",", [], "string");
+ref = ["Model", "MDO4014-3"; ..
+ "FREQUENCY", "MATH<FFT(CH1, BLACKMANHARRIS, LOGRMS)>"];
+assert_checkequal(val, ref);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12475.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12475.tst
new file mode 100755
index 000000000..64311fbb4
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12475.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12475 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12475
+//
+// <-- Short Description -->
+// csvRead does not support double quotes
+
+csvPath = SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_12475.csv";
+val = csvRead(csvPath, ",", [], "string");
+
+ref = ["Model", "MDO4014-3"; ..
+ "FREQUENCY", "MATH<FFT(CH1, BLACKMANHARRIS, LOGRMS)>"];
+
+assert_checkequal(val, ref);
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12714.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_12714.dia.ref
new file mode 100755
index 000000000..ed86391cc
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12714.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 12714 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12714
+//
+// <-- Short Description -->
+// csvDefault("decimal", ",") returned %f.
+assert_checktrue(csvDefault("decimal", ","));
+expected = ",";
+res = csvDefault("decimal");
+assert_checkequal(res, expected);
+assert_checktrue(csvDefault("decimal", "."));
+expected = ".";
+res = csvDefault("decimal");
+assert_checkequal(res, expected);
+assert_checkfalse(csvDefault("decimal", "/"));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_12714.tst b/modules/spreadsheet/tests/nonreg_tests/bug_12714.tst
new file mode 100755
index 000000000..587b86913
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_12714.tst
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 12714 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12714
+//
+// <-- Short Description -->
+// csvDefault("decimal", ",") returned %f.
+
+assert_checktrue(csvDefault("decimal", ","));
+expected = ",";
+res = csvDefault("decimal");
+assert_checkequal(res, expected);
+
+assert_checktrue(csvDefault("decimal", "."));
+expected = ".";
+res = csvDefault("decimal");
+assert_checkequal(res, expected);
+
+assert_checkfalse(csvDefault("decimal", "/"));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_13144.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_13144.dia.ref
new file mode 100755
index 000000000..1a639f07b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_13144.dia.ref
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13146 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13146
+//
+// <-- Short Description -->
+// csvRead could not ignore header comments.
+// It is now possible thanks to a eighth input argument 'header'.
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL." ];
+filename = fullfile(TMPDIR , "foo.csv");
+rand("seed", 0);
+csvWrite(rand(2,3), filename, ascii(9), ",", [], comments);
+header = 2;
+[M, c] = csvRead(filename, ascii(9), ",", "double", [], [], [], header); // Ignore the two first lines (the header)
+refM = [
+0.211324865464121 0.000221134629101 0.665381104219705
+0.756043854169548 0.330327091738582 0.628391788341105 ];
+refC = "";
+assert_checkalmostequal(M, refM);
+assert_checkequal(c, refC);
+// Case when csvRead has two output arguments but no 'regexpcomments' argument.
+// This test case comes from the help page:
+M = 1:50;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename, ascii(9), ".");
+// Read csv file
+[M1, c] = csvRead(filename,ascii(9), [], "string");
+refM1 = string(1:50);
+refC = "";
+assert_checkequal(M1, refM1);
+assert_checkequal(c, refC);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_13144.tst b/modules/spreadsheet/tests/nonreg_tests/bug_13144.tst
new file mode 100755
index 000000000..15defd7a7
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_13144.tst
@@ -0,0 +1,52 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13146 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13146
+//
+// <-- Short Description -->
+// csvRead could not ignore header comments.
+// It is now possible thanks to a eighth input argument 'header'.
+
+comments = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL." ];
+filename = fullfile(TMPDIR , "foo.csv");
+rand("seed", 0);
+csvWrite(rand(2,3), filename, ascii(9), ",", [], comments);
+
+header = 2;
+[M, c] = csvRead(filename, ascii(9), ",", "double", [], [], [], header); // Ignore the two first lines (the header)
+
+refM = [
+0.211324865464121 0.000221134629101 0.665381104219705
+0.756043854169548 0.330327091738582 0.628391788341105 ];
+refC = "";
+
+assert_checkalmostequal(M, refM);
+assert_checkequal(c, refC);
+
+
+// Case when csvRead has two output arguments but no 'regexpcomments' argument.
+// This test case comes from the help page:
+M = 1:50;
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename, ascii(9), ".");
+
+// Read csv file
+[M1, c] = csvRead(filename,ascii(9), [], "string");
+
+refM1 = string(1:50);
+refC = "";
+
+assert_checkequal(M1, refM1);
+assert_checkequal(c, refC);
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_13272.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_13272.dia.ref
new file mode 100755
index 000000000..de52d64a2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_13272.dia.ref
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13272 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13272
+//
+// <-- Short Description -->
+// csvRead does not return in error when looking for comments on a csv file where no comment is present
+// csvRead returns an empty matrix for comment in this case
+//Creating a test CSV file
+dummyFile = TMPDIR + filesep() + "bug_13272.csv";
+csvWrite(['1', '', '3'; '', '', '6'], dummyFile);
+//Files does not contain 7 as a comment
+iErr = execstr("[M, comment] = csvRead(dummyFile, "","", ""."", ""string"", [], ""/7/"")", "errcatch");
+assert_checkequal(iErr, 0);
+assert_checktrue(isempty(comment));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_13272.tst b/modules/spreadsheet/tests/nonreg_tests/bug_13272.tst
new file mode 100755
index 000000000..265c8289b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_13272.tst
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13272 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13272
+//
+// <-- Short Description -->
+// csvRead does not return in error when looking for comments on a csv file where no comment is present
+// csvRead returns an empty matrix for comment in this case
+
+//Creating a test CSV file
+dummyFile = TMPDIR + filesep() + "bug_13272.csv";
+csvWrite(['1', '', '3'; '', '', '6'], dummyFile);
+
+//Files does not contain 7 as a comment
+iErr = execstr("[M, comment] = csvRead(dummyFile, "","", ""."", ""string"", [], ""/7/"")", "errcatch");
+
+assert_checkequal(iErr, 0);
+assert_checktrue(isempty(comment));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_1858.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_1858.dia.ref
new file mode 100755
index 000000000..f40366054
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_1858.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 1858 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=1858
+//
+// <-- Short Description -->
+// 'readxls' is unusable on the two Windows XP
+//
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/t1.xls';
+for i = 1:100
+ ierr = execstr('X = readxls(xls_filename);','errcatch');
+ if ierr <> 0 then bugmes();quit;end
+end
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_1858.tst b/modules/spreadsheet/tests/nonreg_tests/bug_1858.tst
new file mode 100755
index 000000000..61008465f
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_1858.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 1858 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=1858
+//
+// <-- Short Description -->
+// 'readxls' is unusable on the two Windows XP
+//
+
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/t1.xls';
+for i = 1:100
+ ierr = execstr('X = readxls(xls_filename);','errcatch');
+ if ierr <> 0 then pause,end
+end
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_2.csv b/modules/spreadsheet/tests/nonreg_tests/bug_2.csv
new file mode 100755
index 000000000..fa93786ba
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_2.csv
@@ -0,0 +1,100 @@
+1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_2.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_2.dia.ref
new file mode 100755
index 000000000..733f18b89
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_2.dia.ref
@@ -0,0 +1,15 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_2.csv", ",", [], "string");
+r_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_2.csv", ",", ".", "double");
+// =============================================================================
+assert_checkequal(size(r_string, "c"), size(r_double, "c"));
+assert_checkequal(size(r_string, "r"), size(r_double, "r"));
+assert_checkequal(size(r_string, "c"), 100);
+assert_checkequal(size(r_string, "r"), 100);
+assert_checkequal(r_string(100, 100), '1');
+assert_checkequal(and(r_double == eye(100,100)), %T);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_2.tst b/modules/spreadsheet/tests/nonreg_tests/bug_2.tst
new file mode 100755
index 000000000..733f18b89
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_2.tst
@@ -0,0 +1,15 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_2.csv", ",", [], "string");
+r_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_2.csv", ",", ".", "double");
+// =============================================================================
+assert_checkequal(size(r_string, "c"), size(r_double, "c"));
+assert_checkequal(size(r_string, "r"), size(r_double, "r"));
+assert_checkequal(size(r_string, "c"), 100);
+assert_checkequal(size(r_string, "r"), 100);
+assert_checkequal(r_string(100, 100), '1');
+assert_checkequal(and(r_double == eye(100,100)), %T);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_3.csv b/modules/spreadsheet/tests/nonreg_tests/bug_3.csv
new file mode 100755
index 000000000..6235ae527
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_3.csv
@@ -0,0 +1,401 @@
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,NaN,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,NaN,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_3.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_3.dia.ref
new file mode 100755
index 000000000..20a07c024
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_3.dia.ref
@@ -0,0 +1,14 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_3.csv", ",", [], "string");
+r_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_3.csv", ",", ".", "double");
+assert_checkequal(size(r_string, "c"), size(r_double, "c"));
+assert_checkequal(size(r_string, "r"), size(r_double, "r"));
+assert_checkequal(size(r_string, "c"), 100);
+assert_checkequal(size(r_string, "r"), 400);
+assert_checkequal(r_string(100, 100), 'NaN');
+assert_checkequal(isnan(r_double(100, 100)), %T);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_3.tst b/modules/spreadsheet/tests/nonreg_tests/bug_3.tst
new file mode 100755
index 000000000..20a07c024
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_3.tst
@@ -0,0 +1,14 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_3.csv", ",", [], "string");
+r_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_3.csv", ",", ".", "double");
+assert_checkequal(size(r_string, "c"), size(r_double, "c"));
+assert_checkequal(size(r_string, "r"), size(r_double, "r"));
+assert_checkequal(size(r_string, "c"), 100);
+assert_checkequal(size(r_string, "r"), 400);
+assert_checkequal(r_string(100, 100), 'NaN');
+assert_checkequal(isnan(r_double(100, 100)), %T);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_4.dia.ref
new file mode 100755
index 000000000..f04a82a34
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4.dia.ref
@@ -0,0 +1,63 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r1_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_1.csv", ",", [], "string");
+r2_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_2.csv", " ", [], "string");
+r3_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_1.csv", ",", [], "string");
+r4_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_2.csv", " ", [], "string");
+// =============================================================================
+r1_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_1.csv", ",", ".", "double");
+r2_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_2.csv", " ", ".", "double");
+r3_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_1.csv", ",", ".", "double");
+r4_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_2.csv", " ", ".", "double");
+// =============================================================================
+assert_checkequal(size(r1_string, "r"), 1 );
+assert_checkequal(size(r1_string, "c"), 8 );
+// =============================================================================
+assert_checkequal(size(r2_string, "r"), 1 );
+assert_checkequal(size(r2_string, "c"), 8 );
+// =============================================================================
+assert_checkequal(size(r3_string, "r"), 1 );
+assert_checkequal(size(r3_string, "c"), 7 );
+// =============================================================================
+assert_checkequal(size(r4_string, "r"), 1 );
+assert_checkequal(size(r4_string, "c"), 7 );
+// =============================================================================
+assert_checkequal(size(r1_string, "r"), size(r1_double, "r") );
+assert_checkequal(size(r1_string, "c"), size(r1_double, "c") );
+// =============================================================================
+assert_checkequal(size(r2_string, "r"), size(r2_double, "r") );
+assert_checkequal(size(r2_string, "c"), size(r2_double, "c") );
+// =============================================================================
+assert_checkequal(size(r3_string, "r"), size(r3_double, "r") );
+assert_checkequal(size(r3_string, "c"), size(r3_double, "c") );
+// =============================================================================
+assert_checkequal(size(r4_string, "r"), size(r4_double, "r") );
+assert_checkequal(size(r4_string, "c"), size(r4_double, "c") );
+// =============================================================================
+ref_longline_1 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07" , "1.322840799913625e-07"];
+assert_checkequal(ref_longline_1, r1_string);
+// =============================================================================
+ref_longline_2 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07" , "1.322840799913625e-07"];
+assert_checkequal(ref_longline_2, r2_string);
+// =============================================================================
+ref_shortline_1 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07"];
+assert_checkequal(ref_shortline_1, r3_string);
+// =============================================================================
+ref_shortline_2 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07"];
+assert_checkequal(ref_shortline_2, r4_string);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4.tst b/modules/spreadsheet/tests/nonreg_tests/bug_4.tst
new file mode 100755
index 000000000..f04a82a34
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4.tst
@@ -0,0 +1,63 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r1_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_1.csv", ",", [], "string");
+r2_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_2.csv", " ", [], "string");
+r3_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_1.csv", ",", [], "string");
+r4_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_2.csv", " ", [], "string");
+// =============================================================================
+r1_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_1.csv", ",", ".", "double");
+r2_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_longline_2.csv", " ", ".", "double");
+r3_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_1.csv", ",", ".", "double");
+r4_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_4_shortline_2.csv", " ", ".", "double");
+// =============================================================================
+assert_checkequal(size(r1_string, "r"), 1 );
+assert_checkequal(size(r1_string, "c"), 8 );
+// =============================================================================
+assert_checkequal(size(r2_string, "r"), 1 );
+assert_checkequal(size(r2_string, "c"), 8 );
+// =============================================================================
+assert_checkequal(size(r3_string, "r"), 1 );
+assert_checkequal(size(r3_string, "c"), 7 );
+// =============================================================================
+assert_checkequal(size(r4_string, "r"), 1 );
+assert_checkequal(size(r4_string, "c"), 7 );
+// =============================================================================
+assert_checkequal(size(r1_string, "r"), size(r1_double, "r") );
+assert_checkequal(size(r1_string, "c"), size(r1_double, "c") );
+// =============================================================================
+assert_checkequal(size(r2_string, "r"), size(r2_double, "r") );
+assert_checkequal(size(r2_string, "c"), size(r2_double, "c") );
+// =============================================================================
+assert_checkequal(size(r3_string, "r"), size(r3_double, "r") );
+assert_checkequal(size(r3_string, "c"), size(r3_double, "c") );
+// =============================================================================
+assert_checkequal(size(r4_string, "r"), size(r4_double, "r") );
+assert_checkequal(size(r4_string, "c"), size(r4_double, "c") );
+// =============================================================================
+ref_longline_1 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07" , "1.322840799913625e-07"];
+assert_checkequal(ref_longline_1, r1_string);
+// =============================================================================
+ref_longline_2 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07" , "1.322840799913625e-07"];
+assert_checkequal(ref_longline_2, r2_string);
+// =============================================================================
+ref_shortline_1 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07"];
+assert_checkequal(ref_shortline_1, r3_string);
+// =============================================================================
+ref_shortline_2 = ["-2.790381273096156e-07" , "3.794290569878876e-07" , ..
+ "1.102895012074256e-06" , "1.632322210513841e-06" , ..
+ "1.777203879921258e-06" , "1.486206657150863e-06" , ..
+ "8.635378410712134e-07"];
+assert_checkequal(ref_shortline_2, r4_string);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_1.csv b/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_1.csv
new file mode 100755
index 000000000..ee644d5ee
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_1.csv
@@ -0,0 +1 @@
+-2.790381273096156e-07,3.794290569878876e-07,1.102895012074256e-06,1.632322210513841e-06,1.777203879921258e-06,1.486206657150863e-06,8.635378410712134e-07,1.322840799913625e-07
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_2.csv b/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_2.csv
new file mode 100755
index 000000000..477b73006
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4_longline_2.csv
@@ -0,0 +1 @@
+-2.790381273096156e-07 3.794290569878876e-07 1.102895012074256e-06 1.632322210513841e-06 1.777203879921258e-06 1.486206657150863e-06 8.635378410712134e-07 1.322840799913625e-07
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_1.csv b/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_1.csv
new file mode 100755
index 000000000..91327776c
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_1.csv
@@ -0,0 +1 @@
+-2.790381273096156e-07,3.794290569878876e-07,1.102895012074256e-06,1.632322210513841e-06,1.777203879921258e-06,1.486206657150863e-06,8.635378410712134e-07
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_2.csv b/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_2.csv
new file mode 100755
index 000000000..b75cb63b9
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_4_shortline_2.csv
@@ -0,0 +1 @@
+-2.790381273096156e-07 3.794290569878876e-07 1.102895012074256e-06 1.632322210513841e-06 1.777203879921258e-06 1.486206657150863e-06 8.635378410712134e-07
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_5.csv b/modules/spreadsheet/tests/nonreg_tests/bug_5.csv
new file mode 100755
index 000000000..19ad7142e
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_5.csv
@@ -0,0 +1,372 @@
+0
+-0
+1e-308
+1e308
+1.2e-005
+1.6e-005
+2e-005
+2.4e-005
+2.8e-005
+3e-005
+3.2e-005
+3.6e-005
+4e-005
+4.4e-005
+4.8e-005
+5e-005
+5.2e-005
+5.6e-005
+6e-005
+6.4e-005
+6.8e-005
+7e-005
+7.2e-005
+7.6e-005
+8e-005
+8.4e-005
+8.8e-005
+9e-005
+9.2e-005
+9.6e-005
+0.0001
+0.000104
+0.000108
+0.00011
+0.000112
+0.000116
+0.00012
+0.000124
+0.000128
+0.00013
+0.000132
+0.000136
+0.00014
+0.000144
+0.000148
+0.00015
+0.000152
+0.000156
+0.00016
+0.000164
+0.000168
+0.00017
+0.000172
+0.000176
+0.00018
+0.000184
+0.000188
+0.00019
+0.000192
+0.000196
+0.0002
+0.000204
+0.000208
+0.00021
+0.000212
+0.000216
+0.00022
+0.000224
+0.000228
+0.00023
+0.000232
+0.000236
+0.00024
+0.000244
+0.000248
+0.00025
+0.000252
+0.000256
+0.00026
+0.000264
+0.000268
+0.00027
+0.000272
+0.000276
+0.00028
+0.000284
+0.000288
+0.00029
+0.000292
+0.000296
+0.0003
+0.000304
+0.000308
+0.00031
+0.000312
+0.000316
+0.00032
+0.000324
+0.000328
+0.00033
+0.000332
+0.000336
+0.00034
+0.000344
+0.000348
+0.00035
+0.000352
+0.000356
+0.00036
+0.000364
+0.000368
+0.00037
+0.000372
+0.000376
+0.00038
+0.000384
+0.000388
+0.00039
+0.000392
+0.000396
+0.0004
+0.000404
+0.000408
+0.00041
+0.000412
+0.000416
+0.00042
+0.000424
+0.000428
+0.00043
+0.000432
+0.000436
+0.00044
+0.000444
+0.000448
+0.00045
+0.000452
+0.000456
+0.00046
+0.000464
+0.000468
+0.00047
+0.000472
+0.000476
+0.00048
+0.000484
+0.000488
+0.00049
+0.000492
+0.000496
+0.0005
+0.000504
+0.000508
+0.00051
+0.000512
+0.000516
+0.00052
+0.000524
+0.000528
+0.00053
+0.000532
+0.000536
+0.00054
+0.000544
+0.000548
+0.00055
+0.000552
+0.000556
+0.00056
+0.000564
+0.000568
+0.00057
+0.000572
+0.000576
+0.00058
+0.000584
+0.000588
+0.00059
+0.000592
+0.000596
+0.0006
+0.000604
+0.000608
+0.00061
+0.000612
+0.000616
+0.00062
+0.000624
+0.000628
+0.00063
+0.000632
+0.000636
+0.00064
+0.000644
+0.000648
+0.00065
+0.000652
+0.000656
+0.00066
+0.000664
+0.000668
+0.00067
+0.000672
+0.000676
+0.00068
+0.000684
+0.000688
+0.00069
+0.000692
+0.000696
+0.0007
+0.000704
+0.000708
+0.00071
+0.000712
+0.000716
+0.00072
+0.000724
+0.000728
+0.00073
+0.000732
+0.000736
+0.00074
+0.000744
+0.000748
+0.00075
+0.000752
+0.000756
+0.00076
+0.000764
+0.000768
+0.00077
+0.000772
+0.000776
+0.00078
+0.000784
+0.000788
+0.00079
+0.000792
+0.000796
+0.0008
+0.000804
+0.000808
+0.00081
+0.000812
+0.000816
+0.00082
+0.000824
+0.000828
+0.00083
+0.000832
+0.000836
+0.00084
+0.000844
+0.000848
+0.00085
+0.000852
+0.000856
+0.00086
+0.000864
+0.000868
+0.00087
+0.000872
+0.000876
+0.00088
+0.000884
+0.000888
+0.00089
+0.000892
+0.000896
+0.0009
+0.000904
+0.000908
+0.00091
+0.000912
+0.000916
+0.00092
+0.000924
+0.000928
+0.00093
+0.000932
+0.000936
+0.00094
+0.000944
+0.000948
+0.00095
+0.000952
+0.000956
+0.00096
+0.000964
+0.000968
+0.00097
+0.000972
+0.000976
+0.00098
+0.000984
+0.000988
+0.00099
+0.000992
+0.000996
+0.001
+0.001004
+0.001008
+0.00101
+0.001012
+0.001016
+0.00102
+0.001024
+0.001028
+0.00103
+0.001032
+0.001036
+0.00104
+0.001044
+0.001048
+0.00105
+0.001052
+0.001056
+0.00106
+0.001064
+0.001068
+0.00107
+0.001072
+0.001076
+0.00108
+0.001084
+0.001088
+0.00109
+0.001092
+0.001096
+0.0011
+0.001104
+0.001108
+0.00111
+0.001112
+0.001116
+0.00112
+0.001124
+0.001128
+0.00113
+0.001132
+0.001136
+0.00114
+0.001144
+0.001148
+0.00115
+0.001152
+0.001156
+0.00116
+0.001164
+0.001168
+0.00117
+0.001172
+0.001176
+0.00118
+0.001184
+0.001188
+0.00119
+0.001192
+0.001196
+0.0012
+0.001204
+0.001208
+0.00121
+0.001212
+0.001216
+0.00122
+0.001224
+0.001228
+0.00123
+0.001232
+0.001236
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_5.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_5.dia.ref
new file mode 100755
index 000000000..9096eb1b8
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_5.dia.ref
@@ -0,0 +1,29 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r1_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_5.csv", ",", [], "string");
+r1_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_5.csv", ",", ".", "double");
+// =============================================================================
+assert_checkequal(size(r1_string, "c"), size(r1_double, "c"));
+assert_checkequal(size(r1_string, "r"), size(r1_double, "r"));
+// =============================================================================
+assert_checkequal(size(r1_string, "c"), 1);
+assert_checkequal(size(r1_string, "r"), 372);
+// =============================================================================
+assert_checkequal(r1_string(1), "0");
+assert_checkequal(r1_double(1), 0);
+// =============================================================================
+assert_checkequal(r1_string(2), "-0");
+assert_checkequal(r1_double(2), 0);
+// =============================================================================
+assert_checkequal(r1_string(3), "1e-308");
+assert_checkequal(r1_double(3), 1e-308);
+// =============================================================================
+assert_checkequal(r1_string(4), "1e308");
+assert_checkequal(r1_double(4), 1e308);
+// =============================================================================
+assert_checkequal(r1_string(372), "0.001236");
+assert_checkequal(r1_double(372), 0.001236);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_5.tst b/modules/spreadsheet/tests/nonreg_tests/bug_5.tst
new file mode 100755
index 000000000..9096eb1b8
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_5.tst
@@ -0,0 +1,29 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r1_string = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_5.csv", ",", [], "string");
+r1_double = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/bug_5.csv", ",", ".", "double");
+// =============================================================================
+assert_checkequal(size(r1_string, "c"), size(r1_double, "c"));
+assert_checkequal(size(r1_string, "r"), size(r1_double, "r"));
+// =============================================================================
+assert_checkequal(size(r1_string, "c"), 1);
+assert_checkequal(size(r1_string, "r"), 372);
+// =============================================================================
+assert_checkequal(r1_string(1), "0");
+assert_checkequal(r1_double(1), 0);
+// =============================================================================
+assert_checkequal(r1_string(2), "-0");
+assert_checkequal(r1_double(2), 0);
+// =============================================================================
+assert_checkequal(r1_string(3), "1e-308");
+assert_checkequal(r1_double(3), 1e-308);
+// =============================================================================
+assert_checkequal(r1_string(4), "1e308");
+assert_checkequal(r1_double(4), 1e308);
+// =============================================================================
+assert_checkequal(r1_string(372), "0.001236");
+assert_checkequal(r1_double(372), 0.001236);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_5615.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_5615.dia.ref
new file mode 100755
index 000000000..c41f83716
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_5615.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 5615 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5615
+//
+// <-- Short Description -->
+// xls_open failed if there was a trailing space after the file extension
+//
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/Test1.xls';
+ierr = execstr('[fd,SST,Sheetnames,Sheetpos] = xls_open(xls_filename);','errcatch');
+if ierr <> 0 then bugmes();quit;end
+mclose(fd);
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/Test1.xls ';
+ierr = execstr('[fd,SST,Sheetnames,Sheetpos] = xls_open(xls_filename);','errcatch');
+if ierr <> 0 then bugmes();quit;end
+mclose(fd);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_5615.tst b/modules/spreadsheet/tests/nonreg_tests/bug_5615.tst
new file mode 100755
index 000000000..434501885
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_5615.tst
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 5615 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5615
+//
+// <-- Short Description -->
+// xls_open failed if there was a trailing space after the file extension
+//
+
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/Test1.xls';
+ierr = execstr('[fd,SST,Sheetnames,Sheetpos] = xls_open(xls_filename);','errcatch');
+if ierr <> 0 then pause,end
+mclose(fd);
+
+xls_filename = SCI + '/modules/spreadsheet/demos/xls/Test1.xls ';
+ierr = execstr('[fd,SST,Sheetnames,Sheetpos] = xls_open(xls_filename);','errcatch');
+if ierr <> 0 then pause,end
+mclose(fd);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_6.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_6.dia.ref
new file mode 100755
index 000000000..c89dcdd05
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_6.dia.ref
@@ -0,0 +1,10 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+M = rand(4,3);
+csvWrite(M, TMPDIR + '/csvlist.dat');
+r = csvRead(TMPDIR + '/csvlist.dat',csvDefault('separator'), csvDefault('decimal'), 'double');
+assert_checkalmostequal(M, r);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_6.tst b/modules/spreadsheet/tests/nonreg_tests/bug_6.tst
new file mode 100755
index 000000000..c89dcdd05
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_6.tst
@@ -0,0 +1,10 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+M = rand(4,3);
+csvWrite(M, TMPDIR + '/csvlist.dat');
+r = csvRead(TMPDIR + '/csvlist.dat',csvDefault('separator'), csvDefault('decimal'), 'double');
+assert_checkalmostequal(M, r);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_6734.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_6734.dia.ref
new file mode 100755
index 000000000..695112355
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_6734.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 6734 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6734
+//
+// <-- Short Description -->
+//
+// read_csv function contains erroneous error message.
+ierr = execstr("M = read_csv(''doesnotexist.txt'')", "errcatch");
+assert_checkequal(ierr,999)
+ ans =
+
+ T
+L = lasterror();
+assert_checkequal(grep(L(1),"doesnotexist.txt"), 1);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_6734.tst b/modules/spreadsheet/tests/nonreg_tests/bug_6734.tst
new file mode 100755
index 000000000..a916b89ee
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_6734.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 6734 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6734
+//
+// <-- Short Description -->
+//
+// read_csv function contains erroneous error message.
+
+ierr = execstr("M = read_csv(''doesnotexist.txt'')", "errcatch");
+assert_checkequal(ierr,999)
+L = lasterror();
+assert_checkequal(grep(L(1),"doesnotexist.txt"), 1);
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_7003.csv b/modules/spreadsheet/tests/nonreg_tests/bug_7003.csv
new file mode 100755
index 000000000..6235ae527
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_7003.csv
@@ -0,0 +1,401 @@
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,NaN,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,NaN,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+NaN,0.0020304,0.0060287,0.0099438,0.013776,0.017524,0.021189,0.024771,0.028269,0.031685,0.035017,0.038265,0.041431,0.044513,0.047511,0.050427,0.053259,0.056008,0.058673,0.061256,0.063755,0.06617,0.068503,0.070752,0.072918,0.075,0.076999,0.078915,0.080748,0.082497,0.084163,0.085746,0.087245,0.088661,0.089994,0.091243,0.092409,0.093492,0.094492,0.095408,0.096241,0.096991,0.097657,0.09824,0.09874,0.099157,0.09949,0.09974,0.099906,0.09999,0.09999,0.099906,0.09974,0.09949,0.099157,0.09874,0.09824,0.097657,0.096991,0.096241,0.095408,0.094492,0.093492,0.092409,0.091243,0.089994,0.088661,0.087245,0.085746,0.084163,0.082497,0.080748,0.078915,0.076999,0.075,0.072918,0.070752,0.068503,0.06617,0.063755,0.061256,0.058673,0.056008,0.053259,0.050427,0.047511,0.044513,0.041431,0.038265,0.035017,0.031685,0.028269,0.024771,0.021189,0.017524,0.013776,0.0099438,0.0060287,0.0020304,NaN
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_7003.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_7003.dia.ref
new file mode 100755
index 000000000..f9130a7e3
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_7003.dia.ref
@@ -0,0 +1,35 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 7003 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7003
+//
+// <-- Short Description -->
+//
+// read_csv function was not be able to convert "NaN" strings to "%nan" string.
+N = eye(3,3);
+ref = (N == 1);
+N(N == 1) = %nan;
+write_csv(N,TMPDIR + "/TEST_NAN.csv");
+resSTR = read_csv(TMPDIR + "/TEST_NAN.csv");
+resVal = evstr(resSTR);
+if or(ref <> isnan(resVal)) then bugmes();quit;end
+N = eye(3,3);
+ref = (N == 1);
+N(N == 1) = %inf;
+write_csv(N,TMPDIR + "/TEST_INF.csv");
+resSTR = read_csv(TMPDIR + "/TEST_INF.csv");
+resVal = evstr(resSTR);
+if or(ref <> isinf(resVal)) then bugmes();quit;end
+res = read_csv(SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_7003.csv");
+MatA = evstr(res);
+if or(size(MatA) <> [400 100]) then bugmes();quit;end
+if or(isnan(MatA(1:$, 1)) <> %t) then bugmes();quit;end
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_7003.tst b/modules/spreadsheet/tests/nonreg_tests/bug_7003.tst
new file mode 100755
index 000000000..381237114
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_7003.tst
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 7003 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7003
+//
+// <-- Short Description -->
+//
+// read_csv function was not be able to convert "NaN" strings to "%nan" string.
+
+N = eye(3,3);
+ref = (N == 1);
+N(N == 1) = %nan;
+
+write_csv(N,TMPDIR + "/TEST_NAN.csv");
+resSTR = read_csv(TMPDIR + "/TEST_NAN.csv");
+resVal = evstr(resSTR);
+
+if or(ref <> isnan(resVal)) then pause, end
+
+N = eye(3,3);
+ref = (N == 1);
+N(N == 1) = %inf;
+
+write_csv(N,TMPDIR + "/TEST_INF.csv");
+resSTR = read_csv(TMPDIR + "/TEST_INF.csv");
+resVal = evstr(resSTR);
+
+if or(ref <> isinf(resVal)) then pause, end
+
+res = read_csv(SCI + "/modules/spreadsheet/tests/nonreg_tests/bug_7003.csv");
+MatA = evstr(res);
+if or(size(MatA) <> [400 100]) then pause, end
+if or(isnan(MatA(1:$, 1)) <> %t) then pause, end
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8349.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8349.dia.ref
new file mode 100755
index 000000000..a682ac64b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8349.dia.ref
@@ -0,0 +1,49 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8349 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8349
+//
+// <-- Short Description -->
+// write_csv() failed to support writting complexes with %nan or %inf parts
+m = [7,-2,9;1,-8,2;1,-6,0];
+m = m*(1+%i);
+filename=TMPDIR+"/test.txt";
+write_csv(m,filename);
+b=mgetl(filename);
+assert_checkequal(b, ["7+7i,-2-2i,9+9i";"1+1i,-8-8i,2+2i";"1+1i,-6-6i,0"]);
+b=csvRead(filename);
+assert_checkequal(b,m);
+write_csv([ 1 %nan*(1+%i)],filename);
+b=mgetl(filename);
+assert_checkequal(b,"1,Nan+Nani");
+b=csvRead(filename);
+assert_checkequal(b, [1 %nan*(1+%i)]);
+write_csv([ 1.1 %nan*(1+%i)],filename);
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Nan+Nani");
+b=csvRead(filename);
+assert_checkequal(b, [1.1 %nan*(1+%i)]);
+write_csv([ 1 %inf*(1+%i)],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1,Inf+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [1 %inf*(1+%i)]);
+write_csv([ 1.1 %inf*(1+%i)],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Inf+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [1.1 %inf*(1+%i)]);
+write_csv([ 1.1 1+%i*%inf],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Nan+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [ 1.1 1+%i*%inf]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8349.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8349.tst
new file mode 100755
index 000000000..a9aab6aba
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8349.tst
@@ -0,0 +1,56 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8349 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8349
+//
+// <-- Short Description -->
+// write_csv() failed to support writting complexes with %nan or %inf parts
+
+m = [7,-2,9;1,-8,2;1,-6,0];
+m = m*(1+%i);
+filename=TMPDIR+"/test.txt";
+write_csv(m,filename);
+b=mgetl(filename);
+assert_checkequal(b, ["7+7i,-2-2i,9+9i";"1+1i,-8-8i,2+2i";"1+1i,-6-6i,0"]);
+b=csvRead(filename);
+assert_checkequal(b,m);
+
+write_csv([ 1 %nan*(1+%i)],filename);
+b=mgetl(filename);
+assert_checkequal(b,"1,Nan+Nani");
+b=csvRead(filename);
+assert_checkequal(b, [1 %nan*(1+%i)]);
+
+write_csv([ 1.1 %nan*(1+%i)],filename);
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Nan+Nani");
+b=csvRead(filename);
+assert_checkequal(b, [1.1 %nan*(1+%i)]);
+
+
+write_csv([ 1 %inf*(1+%i)],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1,Inf+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [1 %inf*(1+%i)]);
+
+write_csv([ 1.1 %inf*(1+%i)],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Inf+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [1.1 %inf*(1+%i)]);
+
+write_csv([ 1.1 1+%i*%inf],filename)
+b=mgetl(filename);
+assert_checkequal(b,"1.1000000000000001,Nan+Infi");
+b=csvRead(filename);
+assert_checkequal(b, [ 1.1 1+%i*%inf]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8532.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8532.dia.ref
new file mode 100755
index 000000000..b3c62f72a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8532.dia.ref
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 8532 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8532
+//
+// <-- Short Description -->
+// size of input arguments of read_csv was no verified.
+//
+A = 1:50;
+mputl(strcat(string(A),ascii(9)+" "), TMPDIR + '/foo.csv');
+if execstr("B = read_csv(TMPDIR + ""/foo.csv"", ["" "", ""\t""]);", "errcatch") <> 999 then bugmes();quit;end
+msg = lasterror();
+if msg <> msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"), "read_csv", 2) then bugmes();quit;end
+if execstr("B1 = read_csv(TMPDIR + ""/foo.csv"", ""\t"");", "errcatch") <> 0 then bugmes();quit;end
+assert_checkequal(A,evstr(B1));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8532.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8532.tst
new file mode 100755
index 000000000..cd2d18f65
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8532.tst
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 8532 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8532
+//
+// <-- Short Description -->
+// size of input arguments of read_csv was no verified.
+//
+
+A = 1:50;
+mputl(strcat(string(A),ascii(9)+" "), TMPDIR + '/foo.csv');
+
+if execstr("B = read_csv(TMPDIR + ""/foo.csv"", ["" "", ""\t""]);", "errcatch") <> 999 then pause, end
+msg = lasterror();
+if msg <> msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"), "read_csv", 2) then pause, end
+
+if execstr("B1 = read_csv(TMPDIR + ""/foo.csv"", ""\t"");", "errcatch") <> 0 then pause, end
+assert_checkequal(A,evstr(B1));
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8651.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8651.dia.ref
new file mode 100755
index 000000000..862f7c3ef
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8651.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8651 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8651
+//
+// <-- Short Description -->
+// The error message of write_csv was wrong.
+//
+a = ones(5,7);
+filename = fullfile(TMPDIR, 'foo.txt');
+msgerr = msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'' or ''%s'' expected.\n"), 'write_csv', 4, '.', ',');
+assert_checkerror ("write_csv(a,filename, '";"', '"@"')" , msgerr);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8651.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8651.tst
new file mode 100755
index 000000000..98f03e6bf
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8651.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8651 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8651
+//
+// <-- Short Description -->
+// The error message of write_csv was wrong.
+//
+
+a = ones(5,7);
+filename = fullfile(TMPDIR, 'foo.txt');
+msgerr = msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'' or ''%s'' expected.\n"), 'write_csv', 4, '.', ',');
+assert_checkerror ("write_csv(a,filename, '";"', '"@"')" , msgerr);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8653.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8653.dia.ref
new file mode 100755
index 000000000..9d4ce312f
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8653.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8653 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8653
+//
+// <-- Short Description -->
+// csvRead returns double by default
+A = 1:50;
+mputl(strcat(string(A),ascii(9)), TMPDIR + '/foo.csv');
+B = csvRead(TMPDIR + '/foo.csv',ascii(9));
+assert_checkequal(A,B);
+// Check previous behavior
+B = read_csv(TMPDIR + '/foo.csv',ascii(9));
+assert_checkequal(A,evstr(B));
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8653.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8653.tst
new file mode 100755
index 000000000..9b3ec5f6d
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8653.tst
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8653 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8653
+//
+// <-- Short Description -->
+// csvRead returns double by default
+
+
+A = 1:50;
+mputl(strcat(string(A),ascii(9)), TMPDIR + '/foo.csv');
+B = csvRead(TMPDIR + '/foo.csv',ascii(9));
+
+assert_checkequal(A,B);
+
+// Check previous behavior
+B = read_csv(TMPDIR + '/foo.csv',ascii(9));
+assert_checkequal(A,evstr(B)); \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8654.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8654.dia.ref
new file mode 100755
index 000000000..535259a90
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8654.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8654 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8654
+//
+// <-- Short Description -->
+// Use the standard separator for csv.
+//
+A = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];
+filename=fullfile(TMPDIR,'data.csv');
+write_csv(A,filename);
+B = evstr(read_csv(filename));
+assert_checkequal(A,B);
+A = [1:10] * 0.1;
+filename=fullfile(TMPDIR,'data2.csv');
+write_csv(A,filename);
+B = evstr(read_csv(filename));
+assert_checkequal(A,B);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8654.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8654.tst
new file mode 100755
index 000000000..d233fc157
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8654.tst
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8654 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8654
+//
+// <-- Short Description -->
+// Use the standard separator for csv.
+//
+A = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];
+filename=fullfile(TMPDIR,'data.csv');
+write_csv(A,filename);
+B = evstr(read_csv(filename));
+assert_checkequal(A,B);
+
+A = [1:10] * 0.1;
+filename=fullfile(TMPDIR,'data2.csv');
+write_csv(A,filename);
+B = evstr(read_csv(filename));
+assert_checkequal(A,B);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8656.dia.ref b/modules/spreadsheet/tests/nonreg_tests/bug_8656.dia.ref
new file mode 100755
index 000000000..850259fdf
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8656.dia.ref
@@ -0,0 +1,26 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8656 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8656
+//
+// <-- Short Description -->
+// Lost of precision
+//
+A = [1.01234567891234567,1.01234567891234567];
+filename=fullfile(TMPDIR,'data.csv');
+csvWrite(A,filename,",",".");
+resString=mgetl(filename);
+assert_checkequal(A,evstr(resString));
+res=csvRead(filename);
+assert_checkequal(A,res);
+res=read_csv(filename);
+assert_checkequal(evstr(res),A);
diff --git a/modules/spreadsheet/tests/nonreg_tests/bug_8656.tst b/modules/spreadsheet/tests/nonreg_tests/bug_8656.tst
new file mode 100755
index 000000000..a215b1a25
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/bug_8656.tst
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- JAVA NOT MANDATORY -->
+//
+// <-- Non-regression test for bug 8656 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8656
+//
+// <-- Short Description -->
+// Lost of precision
+//
+A = [1.01234567891234567,1.01234567891234567];
+filename=fullfile(TMPDIR,'data.csv');
+csvWrite(A,filename,",",".");
+resString=mgetl(filename);
+assert_checkequal(A,evstr(resString));
+
+res=csvRead(filename);
+assert_checkequal(A,res);
+
+res=read_csv(filename);
+assert_checkequal(evstr(res),A);
diff --git a/modules/spreadsheet/tests/nonreg_tests/emptyfields.csv b/modules/spreadsheet/tests/nonreg_tests/emptyfields.csv
new file mode 100755
index 000000000..c78479194
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/emptyfields.csv
@@ -0,0 +1,2 @@
+foo;bar;;;
+foo2;bar2;bar3;;
diff --git a/modules/spreadsheet/tests/nonreg_tests/emptyfields.dia.ref b/modules/spreadsheet/tests/nonreg_tests/emptyfields.dia.ref
new file mode 100755
index 000000000..49ac39596
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/emptyfields.dia.ref
@@ -0,0 +1,7 @@
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/emptyfields.csv", ";",[],"string");
+assert_checkequal(r,["foo","bar","","","";"foo2","bar2","bar3","",""]);
+r = read_csv(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/emptyfields.csv", ";",[]);
+assert_checkequal(r,["foo","bar","","","";"foo2","bar2","bar3","",""]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/emptyfields.tst b/modules/spreadsheet/tests/nonreg_tests/emptyfields.tst
new file mode 100755
index 000000000..469bfb2bb
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/emptyfields.tst
@@ -0,0 +1,8 @@
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/emptyfields.csv", ";",[],"string");
+assert_checkequal(r,["foo","bar","","","";"foo2","bar2","bar3","",""]);
+
+r = read_csv(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/emptyfields.csv", ";",[]);
+assert_checkequal(r,["foo","bar","","","";"foo2","bar2","bar3","",""]);
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_194.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_194.tst
new file mode 100755
index 000000000..152015e07
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_194.tst
@@ -0,0 +1,32 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- LONG TIME EXECUTION -->
+//
+// <-- Non-regression test for bug 194 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/194/
+//
+// <-- Short Description -->
+// csvRead may fail on large files.
+// =============================================================================
+filename = fullfile(TMPDIR, "prices.csv");
+mprintf("File=%s\n",filename);
+fd = mopen(filename,"w");
+imax=1800000;
+for i= 1:imax
+ if ( modulo(i,10000)==0 ) then
+ mprintf("i=%d, p=%.1f%%\n",i,i/imax*100)
+ end
+ mputl("02/05/10 00:00:02,1.32453,1.32491",fd);
+end
+mclose(fd);
+
+assert_checkequal(execstr("M = csvRead(filename,[],[],""string"");", "errcatch"), 17);
+stacksize('max');
+assert_checkequal(execstr("M = csvRead(filename,[],[],""string"");", "errcatch"), 0);
+clear M
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_245.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_245.dia.ref
new file mode 100755
index 000000000..2ebe8c657
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_245.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 245 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/245/
+//
+// <-- Short Description -->
+// csvStringToDouble failed on some special cases.
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+a = csvStringToDouble("3.14159e-10+inf");
+assert_checkequal ( isnan(a) , %t );
+assert_checkequal ( execstr("a = csvStringToDouble(""3.14159e-10+inf"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+a = csvStringToDouble("6+3*I");
+assert_checkequal ( isnan(a) , %t );
+assert_checkequal ( execstr("a = csvStringToDouble(""6+3*I"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_245.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_245.tst
new file mode 100755
index 000000000..9296daabc
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_245.tst
@@ -0,0 +1,27 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 245 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/245/
+//
+// <-- Short Description -->
+// csvStringToDouble failed on some special cases.
+
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+a = csvStringToDouble("3.14159e-10+inf");
+assert_checkequal ( isnan(a) , %t );
+
+assert_checkequal ( execstr("a = csvStringToDouble(""3.14159e-10+inf"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+
+a = csvStringToDouble("6+3*I");
+assert_checkequal ( isnan(a) , %t );
+
+assert_checkequal ( execstr("a = csvStringToDouble(""6+3*I"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_275.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_275.dia.ref
new file mode 100755
index 000000000..ddb47e257
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_275.dia.ref
@@ -0,0 +1,57 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 275 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/275/
+//
+// <-- Short Description -->
+// The default precision is insufficient.
+// =============================================================================
+function y = writereadcycle(x,filename)
+ csvWrite(x,filename);
+ separator = [];
+ decimal=[];
+ conversion ="double";
+ y = csvRead(filename, separator, decimal, conversion);
+endfunction
+function tf = checkWriteReadCycle(x,direction,n,filename)
+ tf = %t
+ for k = 1 : n
+ y = writereadcycle(x,filename);
+ tf = (x==y);
+ if ( ~tf ) then
+ break
+ end
+ x = nearfloat(direction,x);
+ end
+endfunction
+n=1000;
+filename = fullfile(TMPDIR,"csvWrite_M_1.csv");
+tf = checkWriteReadCycle(1,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(1,"pred",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(0.1,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(0.1,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("huge");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("tiny");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("tiniest");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_275.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_275.tst
new file mode 100755
index 000000000..fa36c2645
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_275.tst
@@ -0,0 +1,59 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 275 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/275/
+//
+// <-- Short Description -->
+// The default precision is insufficient.
+// =============================================================================
+function y = writereadcycle(x,filename)
+ csvWrite(x,filename);
+ separator = [];
+ decimal=[];
+ conversion ="double";
+ y = csvRead(filename, separator, decimal, conversion);
+endfunction
+
+function tf = checkWriteReadCycle(x,direction,n,filename)
+ tf = %t
+ for k = 1 : n
+ y = writereadcycle(x,filename);
+ tf = (x==y);
+ if ( ~tf ) then
+ break
+ end
+ x = nearfloat(direction,x);
+ end
+endfunction
+
+n=1000;
+filename = fullfile(TMPDIR,"csvWrite_M_1.csv");
+tf = checkWriteReadCycle(1,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(1,"pred",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(0.1,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(0.1,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("huge");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("tiny");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+x = number_properties("tiniest");
+tf = checkWriteReadCycle(x,"succ",100,filename);
+assert_checkequal ( tf , %t );
+tf = checkWriteReadCycle(x,"pred",100,filename);
+assert_checkequal ( tf , %t );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_281.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_281.dia.ref
new file mode 100755
index 000000000..dca1721a0
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_281.dia.ref
@@ -0,0 +1,72 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 281 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/281/
+//
+// <-- Short Description -->
+// The substitute option does not work.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+filename = fullfile(TMPDIR,"ticket281.csv");
+content = [
+"Infinity"
+];
+substitute = [
+"Infinity" "Inf"
+"Not-A-Number" "Nan"
+];
+mputl(content,filename);
+M = csvRead(filename,[],[],"string",substitute);
+expected = "Inf";
+assert_checkequal ( M , expected );
+M = csvRead(filename,[],[],"double",substitute);
+expected=%inf;
+assert_checkequal ( M , expected );
+//
+// Try with 3 replacements
+filename = fullfile(TMPDIR,"ticket281.csv");
+content = [
+"Infinity"
+];
+substitute = [
+"Infinity" "Inf"
+"Not-A-Number" "Nan"
+"Youwillnotfind" "NotAChance"
+];
+mputl(content,filename);
+M = csvRead(filename,[],[],"string",substitute);
+expected = "Inf";
+assert_checkequal ( M , expected );
+M = csvRead(filename,[],[],"double",substitute);
+expected=%inf;
+assert_checkequal ( M , expected );
+//
+//
+// Create a data file with particular Infinities and complex numbers
+Astr = [
+"6+3*I" "13-7*I" "20+4*I" "27-1.5*I" "34+3.14*I" "41-3*I" "48+3*I" "55-7*I"
+"+0" "-0" "Infinity" "-Infinity" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+expected = [
+"6+3*%i" "13-7*%i" "20+4*%i" "27-1.5*%i" "34+3.14*%i" "41-3*%i" "48+3*%i" "55-7*%i"
+"+0" "-0" "%inf" "-%inf" "%nan" "1.D+308" "1.e-308" "1.e-323"
+];
+filename = fullfile(TMPDIR , "foo.csv");
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+//
+// Customize the replace map.
+substitute=["Nan","%nan";"Infinity","%inf";"I","%i"];
+M = csvRead ( filename , [] , [] , "string" , substitute );
+assert_checkequal ( M , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_281.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_281.tst
new file mode 100755
index 000000000..420567a32
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_281.tst
@@ -0,0 +1,76 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 281 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/281/
+//
+// <-- Short Description -->
+// The substitute option does not work.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+//
+filename = fullfile(TMPDIR,"ticket281.csv");
+content = [
+"Infinity"
+];
+substitute = [
+"Infinity" "Inf"
+"Not-A-Number" "Nan"
+];
+mputl(content,filename);
+M = csvRead(filename,[],[],"string",substitute);
+expected = "Inf";
+assert_checkequal ( M , expected );
+M = csvRead(filename,[],[],"double",substitute);
+expected=%inf;
+assert_checkequal ( M , expected );
+//
+// Try with 3 replacements
+filename = fullfile(TMPDIR,"ticket281.csv");
+content = [
+"Infinity"
+];
+substitute = [
+"Infinity" "Inf"
+"Not-A-Number" "Nan"
+"Youwillnotfind" "NotAChance"
+];
+mputl(content,filename);
+M = csvRead(filename,[],[],"string",substitute);
+expected = "Inf";
+assert_checkequal ( M , expected );
+M = csvRead(filename,[],[],"double",substitute);
+expected=%inf;
+assert_checkequal ( M , expected );
+//
+//
+
+// Create a data file with particular Infinities and complex numbers
+Astr = [
+"6+3*I" "13-7*I" "20+4*I" "27-1.5*I" "34+3.14*I" "41-3*I" "48+3*I" "55-7*I"
+"+0" "-0" "Infinity" "-Infinity" "Nan" "1.D+308" "1.e-308" "1.e-323"
+];
+expected = [
+"6+3*%i" "13-7*%i" "20+4*%i" "27-1.5*%i" "34+3.14*%i" "41-3*%i" "48+3*%i" "55-7*%i"
+"+0" "-0" "%inf" "-%inf" "%nan" "1.D+308" "1.e-308" "1.e-323"
+];
+filename = fullfile(TMPDIR , "foo.csv");
+sep = ",";
+fd = mopen(filename,'wt');
+for i = 1 : size(Astr,"r")
+ mfprintf(fd,"%s\n",strcat(Astr(i,:),sep));
+end
+mclose(fd);
+//
+// Customize the replace map.
+
+substitute=["Nan","%nan";"Infinity","%inf";"I","%i"];
+M = csvRead ( filename , [] , [] , "string" , substitute );
+assert_checkequal ( M , expected );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_297.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_297.dia.ref
new file mode 100755
index 000000000..f171456b2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_297.dia.ref
@@ -0,0 +1,40 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 297 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/297/
+//
+// <-- Short Description -->
+// The csvTextScan function does not take range as a row matrix.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6] )
+ A =
+
+ 16. 23. 30. 37.
+ 17. 6. 31. 38.
+ 18. 25. 32. 39.
+ 19. 26. 33. 40.
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( A , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_297.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_297.tst
new file mode 100755
index 000000000..e43ac2992
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_297.tst
@@ -0,0 +1,35 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 297 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/297/
+//
+// <-- Short Description -->
+// The csvTextScan function does not take range as a row matrix.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6] )
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( A , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_298.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_298.dia.ref
new file mode 100755
index 000000000..5ca8c473a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_298.dia.ref
@@ -0,0 +1,64 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 298 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/281/
+//
+// <-- Short Description -->
+// The text_scan function does not extract the correct range.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6]' );
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( A , expected );
+//
+// Extract range as string.
+A = csvTextScan ( Astr,[],[],"string",[2 3 5 6]' );
+expected = [
+"16","23","30","37";
+"17","6","31","38";
+"18","25","32","39";
+"19","26","33","40"
+];
+assert_checkequal ( A , expected );
+//
+// Extract a non-symetrical range.
+A = csvTextScan ( Astr,[],[],"string",[2 3 5 5]' );
+expected = [
+"16","23","30";
+"17","6","31";
+"18","25","32";
+"19","26","33"
+];
+assert_checkequal ( A , expected );
+//
+// Extract a non-symetrical range.
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 5]' );
+expected = [
+16 23 30
+17 6 31
+18 25 32
+19 26 33
+];
+assert_checkequal ( A , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_298.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_298.tst
new file mode 100755
index 000000000..5ca8c473a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_298.tst
@@ -0,0 +1,64 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 298 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/281/
+//
+// <-- Short Description -->
+// The text_scan function does not extract the correct range.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6]' );
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( A , expected );
+//
+// Extract range as string.
+A = csvTextScan ( Astr,[],[],"string",[2 3 5 6]' );
+expected = [
+"16","23","30","37";
+"17","6","31","38";
+"18","25","32","39";
+"19","26","33","40"
+];
+assert_checkequal ( A , expected );
+//
+// Extract a non-symetrical range.
+A = csvTextScan ( Astr,[],[],"string",[2 3 5 5]' );
+expected = [
+"16","23","30";
+"17","6","31";
+"18","25","32";
+"19","26","33"
+];
+assert_checkequal ( A , expected );
+//
+// Extract a non-symetrical range.
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 5]' );
+expected = [
+16 23 30
+17 6 31
+18 25 32
+19 26 33
+];
+assert_checkequal ( A , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_299.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_299.dia.ref
new file mode 100755
index 000000000..7cce293b0
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_299.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 299 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/299/
+//
+// <-- Short Description -->
+// extends format to digit in csvDefault and csvWrite
+// =============================================================================
+assert_checkequal(csvDefault("precision"), "%.17lg");
+assert_checkequal(csvDefault("precision","%.17lg") , %T);
+assert_checkequal(csvDefault("precision",4), %T);
+assert_checkequal(csvDefault("precision"), "%.4lg");
+M = rand(2,3);
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename,[],[],"%.8e");
+csvWrite(M, filename,[],[],8);
+assert_checkequal(execstr("csvWrite(M, filename,[],[],19)", "errcatch"), 999);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_299.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_299.tst
new file mode 100755
index 000000000..350367e8a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_299.tst
@@ -0,0 +1,26 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 299 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/299/
+//
+// <-- Short Description -->
+// extends format to digit in csvDefault and csvWrite
+// =============================================================================
+assert_checkequal(csvDefault("precision"), "%.17lg");
+assert_checkequal(csvDefault("precision","%.17lg") , %T);
+
+assert_checkequal(csvDefault("precision",4), %T);
+assert_checkequal(csvDefault("precision"), "%.4lg");
+
+M = rand(2,3);
+filename = fullfile(TMPDIR, "data.csv");
+csvWrite(M, filename,[],[],"%.8e");
+csvWrite(M, filename,[],[],8);
+
+assert_checkequal(execstr("csvWrite(M, filename,[],[],19)", "errcatch"), 999);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_350.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_350.dia.ref
new file mode 100755
index 000000000..f0dfdb5c8
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_350.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 350 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/350/
+//
+// <-- Short Description -->
+// The csvStringToDouble function always returns complex doubles.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+r = csvStringToDouble("12");
+assert_checkequal ( isreal(r) , %t );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_350.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_350.tst
new file mode 100755
index 000000000..2e148ecb2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_350.tst
@@ -0,0 +1,19 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 350 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/350/
+//
+// <-- Short Description -->
+// The csvStringToDouble function always returns complex doubles.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+r = csvStringToDouble("12");
+assert_checkequal ( isreal(r) , %t );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_351.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_351.dia.ref
new file mode 100755
index 000000000..67d464a3a
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_351.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 351 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/351/
+//
+// <-- Short Description -->
+// The csvRead function always returns complex entries.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double");
+assert_checkequal ( isreal(r) , %t );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_351.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_351.tst
new file mode 100755
index 000000000..72d1c0038
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_351.tst
@@ -0,0 +1,19 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 351 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/351/
+//
+// <-- Short Description -->
+// The csvRead function always returns complex entries.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double");
+assert_checkequal ( isreal(r) , %t );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_352.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_352.dia.ref
new file mode 100755
index 000000000..bd7fbc8fb
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_352.dia.ref
@@ -0,0 +1,56 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 352 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/352/
+//
+// <-- Short Description -->
+// The csvTextScan function always returned complex matrices.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double" );
+expected = [
+1 8 15 22 29 36 43 50
+2 9 16 23 30 37 44 51
+3 10 17 6 31 38 45 52
+4 11 18 25 32 39 46 53
+5 12 19 26 33 40 47 54
+6 13 20 27 34 41 48 55
++0 -0 %inf -%inf %nan 1.D+308 1.e-308 1.e-323
+];
+assert_checkequal ( isreal(A) , %t );
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6]' );
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( isreal(A) , %t );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_352.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_352.tst
new file mode 100755
index 000000000..ec02c66bc
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_352.tst
@@ -0,0 +1,59 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 352 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/352/
+//
+// <-- Short Description -->
+// The csvTextScan function always returned complex matrices.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double" );
+expected = [
+1 8 15 22 29 36 43 50
+2 9 16 23 30 37 44 51
+3 10 17 6 31 38 45 52
+4 11 18 25 32 39 46 53
+5 12 19 26 33 40 47 54
+6 13 20 27 34 41 48 55
++0 -0 %inf -%inf %nan 1.D+308 1.e-308 1.e-323
+];
+assert_checkequal ( isreal(A) , %t );
+
+//
+// Read only rows/columns in range
+Astr = [
+"1,8,15,22,29,36,43,50"
+"2,9,16,23,30,37,44,51"
+"3,10,17,6,31,38,45,52"
+"4,11,18,25,32,39,46,53"
+"5,12,19,26,33,40,47,54"
+"6,13,20,27,34,41,48,55"
+"+0,-0,Inf,-Inf,Nan,1.D+308,1.e-308,1.e-323"
+];
+A = csvTextScan ( Astr,[],[],"double",[2 3 5 6]' );
+expected = [
+ 16 23 30 37
+ 17 6 31 38
+ 18 25 32 39
+ 19 26 33 40
+];
+assert_checkequal ( isreal(A) , %t );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_353.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_353.dia.ref
new file mode 100755
index 000000000..a7e4e5742
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_353.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 353 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/353/
+//
+// <-- Short Description -->
+// The csvRead function does not manage the range.
+// =================================g============================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// Read only rows/columns in range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double" , [] , [], [2 1 3 2]);
+expected = [
+0.10000000000000001 1.1000000000000001
+0.10000000000000001 0.10000000000000001
+];
+assert_checkequal(r, expected);
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_353.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_353.tst
new file mode 100755
index 000000000..e6e44d90c
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_353.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Michael BAUDIN
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 353 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/353/
+//
+// <-- Short Description -->
+// The csvRead function does not manage the range.
+// =================================g============================================
+
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+// Read only rows/columns in range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double" , [] , [], [2 1 3 2]);
+expected = [
+0.10000000000000001 1.1000000000000001
+0.10000000000000001 0.10000000000000001
+];
+assert_checkequal(r, expected);
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_360.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_360.dia.ref
new file mode 100755
index 000000000..e46724919
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_360.dia.ref
@@ -0,0 +1,38 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 360 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/360/
+//
+// <-- Short Description -->
+// The csvRead function does not manage the range.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+//
+// Read complex doubles with csvTextScan
+Astr = mgetl(fullfile(path,"complexdata.csv"));
+r = csvTextScan(Astr,[],[],"double");
+expected = [
+%nan
+%nan
+];
+assert_checkequal ( r , expected );
+//
+// Read complex doubles with csvRead
+r = csvRead(fullfile(path,"complexdata.csv"), [], [], "double" );
+expected = [
+%nan
+%nan
+];
+assert_checkequal ( r , expected );
+//
+// Configure the separator
+r = csvTextScan(Astr," ",[],"double");
+expected = [6+3*%i 13-7*%i 20+4*%i 27-1.5*%i 34+3.14*%i 41-3*%i 48+3*%i 55-7*%i
+ +0 -0 %inf -%inf %nan 1.D+308 1.e-308 1.e-323];
+assert_checkalmostequal( r , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_360.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_360.tst
new file mode 100755
index 000000000..1c85f83ab
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_360.tst
@@ -0,0 +1,40 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 360 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/360/
+//
+// <-- Short Description -->
+// The csvRead function does not manage the range.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+//
+// Read complex doubles with csvTextScan
+Astr = mgetl(fullfile(path,"complexdata.csv"));
+r = csvTextScan(Astr,[],[],"double");
+expected = [
+%nan
+%nan
+];
+assert_checkequal ( r , expected );
+
+//
+// Read complex doubles with csvRead
+r = csvRead(fullfile(path,"complexdata.csv"), [], [], "double" );
+expected = [
+%nan
+%nan
+];
+assert_checkequal ( r , expected );
+//
+// Configure the separator
+r = csvTextScan(Astr," ",[],"double");
+expected = [6+3*%i 13-7*%i 20+4*%i 27-1.5*%i 34+3.14*%i 41-3*%i 48+3*%i 55-7*%i
+ +0 -0 %inf -%inf %nan 1.D+308 1.e-308 1.e-323];
+assert_checkalmostequal( r , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_472.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_472.dia.ref
new file mode 100755
index 000000000..f2c796aa9
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_472.dia.ref
@@ -0,0 +1,26 @@
+// =============================================================================
+// Copyright (C) 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 472 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/472/
+//
+// <-- Short Description -->
+// csvRead, csvTextScan cannot ignore blank lines.
+// =============================================================================
+warning("off");
+txt = ["my data 1";"";"my data 2"];
+ref_res = ["my data 1";"my data 2"];
+assert_checkequal(csvDefault('blank'), 'on');
+assert_checkequal(csvDefault('blank','off'), %t);
+ierr = execstr("res = csvTextScan(txt, [] , [], ""string"")", "errcatch");
+assert_checkequal(ierr, 999);
+assert_checkequal(csvDefault('blank','on'), %t);
+ierr = execstr("res = csvTextScan(txt, [] , [], ""string"")", "errcatch");
+assert_checkequal(ierr, 0);
+assert_checkequal(res, ref_res);
+// =============================================================================
+assert_checkequal(csvDefault('blank','off'), %t);
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_472.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_472.tst
new file mode 100755
index 000000000..43c769c2b
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_472.tst
@@ -0,0 +1,30 @@
+// =============================================================================
+// Copyright (C) 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 472 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/472/
+//
+// <-- Short Description -->
+// csvRead, csvTextScan cannot ignore blank lines.
+// =============================================================================
+
+warning("off");
+txt = ["my data 1";"";"my data 2"];
+ref_res = ["my data 1";"my data 2"];
+
+assert_checkequal(csvDefault('blank'), 'on');
+assert_checkequal(csvDefault('blank','off'), %t);
+ierr = execstr("res = csvTextScan(txt, [] , [], ""string"")", "errcatch");
+assert_checkequal(ierr, 999);
+
+assert_checkequal(csvDefault('blank','on'), %t);
+ierr = execstr("res = csvTextScan(txt, [] , [], ""string"")", "errcatch");
+assert_checkequal(ierr, 0);
+assert_checkequal(res, ref_res);
+// =============================================================================
+
+assert_checkequal(csvDefault('blank','off'), %t); \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_481.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_481.dia.ref
new file mode 100755
index 000000000..87c0310a8
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_481.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 481 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/481/
+//
+// <-- Short Description -->
+// csvRead crashed Scilab, if there were negative values in file.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+neg = [ -1 -2 -3; -4 -5 -6; -7 -8 -9];
+// Write to file
+negFile = fullfile(TMPDIR,"neg.csv");
+csvWrite (neg , negFile);
+// Read from file
+n = csvRead(negFile);
+assert_checkequal(n, neg);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_481.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_481.tst
new file mode 100755
index 000000000..5754eb19e
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_481.tst
@@ -0,0 +1,27 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 481 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/481/
+//
+// <-- Short Description -->
+// csvRead crashed Scilab, if there were negative values in file.
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+
+neg = [ -1 -2 -3; -4 -5 -6; -7 -8 -9];
+
+// Write to file
+negFile = fullfile(TMPDIR,"neg.csv");
+csvWrite (neg , negFile);
+
+// Read from file
+n = csvRead(negFile);
+
+assert_checkequal(n, neg);
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_644.csv b/modules/spreadsheet/tests/nonreg_tests/ticket_644.csv
new file mode 100755
index 000000000..ccb495454
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_644.csv
@@ -0,0 +1,2 @@
+1,2,3,
+4,5,, \ No newline at end of file
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_644.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_644.dia.ref
new file mode 100755
index 000000000..9a593b6e0
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_644.dia.ref
@@ -0,0 +1,29 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 644 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/644/
+//
+// <-- Short Description -->
+// csvRead did not support empty fields
+// =============================================================================
+REF_str_m = ['1','','3';'4','5','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+REF_str_m = ['','2','3';'4','5','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+REF_str_m = ['','2','3';'4','','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+REF_str_m = ['1','2','3','';'4','5','',''];
+str_m = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_644.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_644.tst
new file mode 100755
index 000000000..dfa7209c1
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_644.tst
@@ -0,0 +1,35 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 644 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/644/
+//
+// <-- Short Description -->
+// csvRead did not support empty fields
+// =============================================================================
+REF_str_m = ['1','','3';'4','5','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+
+REF_str_m = ['','2','3';'4','5','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+
+
+REF_str_m = ['','2','3';'4','','6'];
+csvWrite(REF_str_m, TMPDIR + "/ticket_644.csv");
+str_m = csvRead(TMPDIR + "/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+
+
+REF_str_m = ['1','2','3','';'4','5','',''];
+str_m = csvRead(SCI+"/modules/spreadsheet/" + "tests/nonreg_tests/ticket_644.csv", [], [], "string");
+assert_checkequal(str_m, REF_str_m);
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_674.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_674.dia.ref
new file mode 100755
index 000000000..de5f08458
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_674.dia.ref
@@ -0,0 +1,25 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 674 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/674/
+//
+// <-- Short Description -->
+// csvDefault returns %f when used twice
+// =============================================================================
+assert_checkequal(csvDefault('eol', 'linux'), %t)
+ ans =
+
+ T
+assert_checkequal(csvDefault('eol', 'linux'), %t)
+ ans =
+
+ T
+assert_checkequal(csvDefault('eol', 'freestyle'), %f)
+ ans =
+
+ T
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_674.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_674.tst
new file mode 100755
index 000000000..21d75e70f
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_674.tst
@@ -0,0 +1,18 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 674 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/674/
+//
+// <-- Short Description -->
+// csvDefault returns %f when used twice
+// =============================================================================
+assert_checkequal(csvDefault('eol', 'linux'), %t)
+assert_checkequal(csvDefault('eol', 'linux'), %t)
+assert_checkequal(csvDefault('eol', 'freestyle'), %f)
+// =============================================================================
+
+
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_684.txt b/modules/spreadsheet/tests/nonreg_tests/ticket_684.txt
new file mode 100755
index 000000000..8b0dff928
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_684.txt
@@ -0,0 +1,43 @@
+42,0,0,0,0
+1,Agen,44.1,0,0
+2,Ajaccio,41.6,0,0
+3,Alenon,48.3,0,0
+4,Angers,47.5,0,0
+5,Bastia,42.5,0,0
+6,Besanon,47.2,0,0
+7,Biarritz,43.3,0,0
+8,Bordeaux,44.5,0,0
+9,Boulogne sur Mer,50.4,0,0
+10,Bourg Saint Maurice,45.4,0,0
+11,Brest,48.3,0,0
+12,Caen,49.1,0,0
+13,Carcassonne,43.1,0,0
+14,Chambry,45.4,0,0
+15,Clermont-Ferrand,45.4,0,0
+16,Dijon,47.2,0,0
+17,Embrun,44.3,0,0
+18,Gourdon,44.5,0,0
+19,Grenoble,45.1,0,0
+20,La Rochelle,46.1,0,0
+21,Lille,50.3,0,0
+22,Limoges,45.5,0,0
+23,Lyon,45.4,0,0
+24,Marseille,43.3,0,0
+25,Millau,44.1,0,0
+26,MontdeMarsan,44,0,0
+27,Montelimar,44.4,0,0
+28,Montpellier,43.4,0,0
+29,Nancy,48.4,0,0
+30,Nantes,47.2,0,0
+31,Nice,43.4,0,0
+32,Orleans,47.6,0,0
+33,Paris Montsouris,48.9,0,0
+34,Pau,43.3,0,0
+35,Perpignan,42.4,0,0
+36,Poitiers,46.4,0,0
+37,Reims,49.2,0,0
+38,Rennes,48,0,0
+39,Saint-Etienne,45.3,0,0
+40,Strasbourg,48.3,0,0
+41,Toulon,43.1,0,0
+42,Toulouse,43.4,0,0
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_715.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_715.dia.ref
new file mode 100755
index 000000000..5093329d2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_715.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 715 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/715/
+//
+// <-- Short Description -->
+// Issue 715: csvTextScan crashed on an example.
+// =============================================================================
+PATH = SCI+"/modules/spreadsheet/tests/nonreg_tests/";
+file_name = 'ticket_715.txt';
+M1 = csvRead(PATH + '/' + file_name,[],[],"string");
+DATA1 = csvTextScan(M1," ",".");
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_715.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_715.tst
new file mode 100755
index 000000000..5093329d2
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_715.tst
@@ -0,0 +1,17 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 715 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/715/
+//
+// <-- Short Description -->
+// Issue 715: csvTextScan crashed on an example.
+// =============================================================================
+PATH = SCI+"/modules/spreadsheet/tests/nonreg_tests/";
+file_name = 'ticket_715.txt';
+M1 = csvRead(PATH + '/' + file_name,[],[],"string");
+DATA1 = csvTextScan(M1," ",".");
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_715.txt b/modules/spreadsheet/tests/nonreg_tests/ticket_715.txt
new file mode 100755
index 000000000..196f27ec9
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_715.txt
@@ -0,0 +1,4001 @@
+-0.2000000 4.1320932
+-0.1999500 1.3680682
+-0.1999000 2.9804161
+-0.1998500 0.4467266
+-0.1998000 1.3680682
+-0.1997500 -2.3172983
+-0.1997000 -0.7049504
+-0.1996500 -0.9352859
+-0.1996000 -3.2386400
+-0.1995500 -3.0083045
+-0.1995000 -4.1599816
+-0.1994500 -0.9352859
+-0.1994000 -1.3959567
+-0.1993500 -2.3172983
+-0.1993000 -3.0083045
+-0.1992500 -3.4689754
+-0.1992000 -3.6993108
+-0.1991500 -4.3903170
+-0.1991000 -1.6262921
+-0.1990500 -0.9352859
+-0.1990000 -3.6993108
+-0.1989500 -0.9352859
+-0.1989000 -1.3959567
+-0.1988500 -3.9296462
+-0.1988000 -1.1656213
+-0.1987500 -3.0083045
+-0.1987000 -4.3903170
+-0.1986500 0.4467266
+-0.1986000 -1.1656213
+-0.1985500 -2.5476337
+-0.1985000 -0.4746150
+-0.1984500 -3.0083045
+-0.1984000 -1.8566275
+-0.1983500 -2.7779691
+-0.1983000 -1.6262921
+-0.1982500 -1.8566275
+-0.1982000 -2.5476337
+-0.1981500 -1.1656213
+-0.1981000 -1.8566275
+-0.1980500 -0.0139442
+-0.1980000 -1.6262921
+-0.1979500 -1.1656213
+-0.1979000 1.8287391
+-0.1978500 -0.4746150
+-0.1978000 1.5984037
+-0.1977500 0.4467266
+-0.1977000 0.9073974
+-0.1976500 -0.7049504
+-0.1976000 0.4467266
+-0.1975500 -2.5476337
+-0.1975000 1.5984037
+-0.1974500 -0.0139442
+-0.1974000 1.8287391
+-0.1973500 -2.3172983
+-0.1973000 1.3680682
+-0.1972500 2.0590745
+-0.1972000 3.9017578
+-0.1971500 3.2107515
+-0.1971000 5.0534348
+-0.1970500 6.2051119
+-0.1970000 5.5141056
+-0.1969500 2.5197453
+-0.1969000 3.9017578
+-0.1968500 2.2894099
+-0.1968000 3.2107515
+-0.1967500 2.0590745
+-0.1967000 5.9747764
+-0.1966500 4.8230994
+-0.1966000 1.3680682
+-0.1965500 1.3680682
+-0.1965000 1.5984037
+-0.1964500 1.8287391
+-0.1964000 -2.3172983
+-0.1963500 -2.3172983
+-0.1963000 -0.2442796
+-0.1962500 -2.7779691
+-0.1962000 -1.3959567
+-0.1961500 -1.3959567
+-0.1961000 -1.8566275
+-0.1960500 0.4467266
+-0.1960000 0.4467266
+-0.1959500 -0.2442796
+-0.1959000 -1.3959567
+-0.1958500 -1.6262921
+-0.1958000 -1.8566275
+-0.1957500 -1.1656213
+-0.1957000 1.3680682
+-0.1956500 -0.2442796
+-0.1956000 -1.8566275
+-0.1955500 -1.1656213
+-0.1955000 1.3680682
+-0.1954500 -0.9352859
+-0.1954000 -3.9296462
+-0.1953500 -1.8566275
+-0.1953000 -1.6262921
+-0.1952500 -3.2386400
+-0.1952000 -4.3903170
+-0.1951500 -3.4689754
+-0.1951000 -4.3903170
+-0.1950500 -2.7779691
+-0.1950000 -4.3903170
+-0.1949500 -5.7723295
+-0.1949000 -3.6993108
+-0.1948500 -4.8509878
+-0.1948000 -4.3903170
+-0.1947500 -3.4689754
+-0.1947000 -4.8509878
+-0.1946500 -0.0139442
+-0.1946000 -0.4746150
+-0.1945500 -3.2386400
+-0.1945000 -0.4746150
+-0.1944500 -1.1656213
+-0.1944000 0.4467266
+-0.1943500 -0.2442796
+-0.1943000 -0.0139442
+-0.1942500 0.6770620
+-0.1942000 -0.7049504
+-0.1941500 -0.7049504
+-0.1941000 0.9073974
+-0.1940500 1.3680682
+-0.1940000 -0.0139442
+-0.1939500 -2.0869629
+-0.1939000 0.9073974
+-0.1938500 1.1377328
+-0.1938000 0.9073974
+-0.1937500 -0.0139442
+-0.1937000 0.4467266
+-0.1936500 -0.9352859
+-0.1936000 -1.1656213
+-0.1935500 -0.9352859
+-0.1935000 0.4467266
+-0.1934500 1.5984037
+-0.1934000 2.9804161
+-0.1933500 3.2107515
+-0.1933000 2.9804161
+-0.1932500 2.7500807
+-0.1932000 3.4410869
+-0.1931500 4.3624286
+-0.1931000 2.5197453
+-0.1930500 2.0590745
+-0.1930000 5.9747764
+-0.1929500 0.6770620
+-0.1929000 2.2894099
+-0.1928500 2.2894099
+-0.1928000 3.2107515
+-0.1927500 3.4410869
+-0.1927000 3.6714223
+-0.1926500 -0.0139442
+-0.1926000 2.0590745
+-0.1925500 -1.3959567
+-0.1925000 0.4467266
+-0.1924500 -1.1656213
+-0.1924000 -3.2386400
+-0.1923500 0.9073974
+-0.1923000 -0.2442796
+-0.1922500 -1.8566275
+-0.1922000 -1.6262921
+-0.1921500 0.4467266
+-0.1921000 -1.3959567
+-0.1920500 0.4467266
+-0.1920000 -0.0139442
+-0.1919500 -0.7049504
+-0.1919000 0.2163912
+-0.1918500 -2.7779691
+-0.1918000 -0.7049504
+-0.1917500 -0.2442796
+-0.1917000 -3.2386400
+-0.1916500 -0.7049504
+-0.1916000 -0.7049504
+-0.1915500 -0.2442796
+-0.1915000 -4.8509878
+-0.1914500 -3.9296462
+-0.1914000 -3.0083045
+-0.1913500 -2.7779691
+-0.1913000 -2.5476337
+-0.1912500 -3.4689754
+-0.1912000 -1.8566275
+-0.1911500 -2.5476337
+-0.1911000 -1.1656213
+-0.1910500 -3.9296462
+-0.1910000 -3.2386400
+-0.1909500 -1.6262921
+-0.1909000 -0.7049504
+-0.1908500 1.3680682
+-0.1908000 0.4467266
+-0.1907500 -1.3959567
+-0.1907000 -0.0139442
+-0.1906500 1.8287391
+-0.1906000 2.7500807
+-0.1905500 2.5197453
+-0.1905000 2.7500807
+-0.1904500 -0.2442796
+-0.1904000 -0.9352859
+-0.1903500 -1.3959567
+-0.1903000 -2.3172983
+-0.1902500 -1.1656213
+-0.1902000 -1.6262921
+-0.1901500 -3.2386400
+-0.1901000 -0.9352859
+-0.1900500 -2.3172983
+-0.1900000 -2.5476337
+-0.1899500 0.9073974
+-0.1899000 0.4467266
+-0.1898500 -0.2442796
+-0.1898000 -0.7049504
+-0.1897500 -3.4689754
+-0.1897000 -2.7779691
+-0.1896500 -0.2442796
+-0.1896000 -0.7049504
+-0.1895500 -2.3172983
+-0.1895000 1.8287391
+-0.1894500 1.5984037
+-0.1894000 -0.7049504
+-0.1893500 -2.0869629
+-0.1893000 -2.0869629
+-0.1892500 -0.0139442
+-0.1892000 -2.5476337
+-0.1891500 -1.1656213
+-0.1891000 -1.6262921
+-0.1890500 -0.4746150
+-0.1890000 -3.4689754
+-0.1889500 -1.8566275
+-0.1889000 -4.6206524
+-0.1888500 -2.0869629
+-0.1888000 -0.2442796
+-0.1887500 -1.1656213
+-0.1887000 -1.8566275
+-0.1886500 -3.0083045
+-0.1886000 -1.6262921
+-0.1885500 -0.9352859
+-0.1885000 -1.3959567
+-0.1884500 -0.9352859
+-0.1884000 -4.6206524
+-0.1883500 -2.5476337
+-0.1883000 -3.6993108
+-0.1882500 0.2163912
+-0.1882000 -3.4689754
+-0.1881500 -4.3903170
+-0.1881000 -1.6262921
+-0.1880500 -4.6206524
+-0.1880000 -0.9352859
+-0.1879500 -1.1656213
+-0.1879000 -1.3959567
+-0.1878500 -1.1656213
+-0.1878000 -3.2386400
+-0.1877500 -0.9352859
+-0.1877000 -5.3116586
+-0.1876500 -2.7779691
+-0.1876000 -0.0139442
+-0.1875500 -2.5476337
+-0.1875000 -1.1656213
+-0.1874500 -1.3959567
+-0.1874000 -0.7049504
+-0.1873500 0.4467266
+-0.1873000 0.6770620
+-0.1872500 -2.5476337
+-0.1872000 -2.0869629
+-0.1871500 -0.7049504
+-0.1871000 -1.8566275
+-0.1870500 -3.4689754
+-0.1870000 -1.1656213
+-0.1869500 -4.1599816
+-0.1869000 -1.8566275
+-0.1868500 -3.6993108
+-0.1868000 -1.1656213
+-0.1867500 -4.8509878
+-0.1867000 -1.6262921
+-0.1866500 -1.8566275
+-0.1866000 -1.1656213
+-0.1865500 -0.0139442
+-0.1865000 0.2163912
+-0.1864500 1.3680682
+-0.1864000 -1.3959567
+-0.1863500 -0.0139442
+-0.1863000 -1.1656213
+-0.1862500 0.9073974
+-0.1862000 2.0590745
+-0.1861500 -1.6262921
+-0.1861000 -2.0869629
+-0.1860500 -2.5476337
+-0.1860000 -0.0139442
+-0.1859500 -1.1656213
+-0.1859000 -3.6993108
+-0.1858500 -3.4689754
+-0.1858000 -4.6206524
+-0.1857500 -4.1599816
+-0.1857000 -6.0026649
+-0.1856500 -3.9296462
+-0.1856000 -2.3172983
+-0.1855500 -2.0869629
+-0.1855000 -3.0083045
+-0.1854500 -3.6993108
+-0.1854000 -2.0869629
+-0.1853500 -3.2386400
+-0.1853000 -0.4746150
+-0.1852500 -1.6262921
+-0.1852000 -1.8566275
+-0.1851500 -1.6262921
+-0.1851000 -0.4746150
+-0.1850500 -3.2386400
+-0.1850000 0.4467266
+-0.1849500 -0.9352859
+-0.1849000 -1.3959567
+-0.1848500 0.9073974
+-0.1848000 -1.1656213
+-0.1847500 0.4467266
+-0.1847000 -1.8566275
+-0.1846500 -0.4746150
+-0.1846000 -0.2442796
+-0.1845500 -0.2442796
+-0.1845000 -0.7049504
+-0.1844500 -1.8566275
+-0.1844000 -1.3959567
+-0.1843500 -2.7779691
+-0.1843000 1.1377328
+-0.1842500 -1.3959567
+-0.1842000 -2.5476337
+-0.1841500 -1.3959567
+-0.1841000 -2.0869629
+-0.1840500 -1.6262921
+-0.1840000 -0.9352859
+-0.1839500 -0.9352859
+-0.1839000 2.2894099
+-0.1838500 -3.0083045
+-0.1838000 -1.1656213
+-0.1837500 -0.0139442
+-0.1837000 -0.2442796
+-0.1836500 -1.1656213
+-0.1836000 -0.9352859
+-0.1835500 -2.3172983
+-0.1835000 -0.0139442
+-0.1834500 -1.6262921
+-0.1834000 -0.7049504
+-0.1833500 -2.0869629
+-0.1833000 -2.5476337
+-0.1832500 -2.7779691
+-0.1832000 -1.1656213
+-0.1831500 -1.1656213
+-0.1831000 -1.8566275
+-0.1830500 -2.5476337
+-0.1830000 -5.5419941
+-0.1829500 -1.8566275
+-0.1829000 -2.0869629
+-0.1828500 -2.5476337
+-0.1828000 -3.0083045
+-0.1827500 -2.5476337
+-0.1827000 -1.3959567
+-0.1826500 -2.3172983
+-0.1826000 -0.2442796
+-0.1825500 -2.5476337
+-0.1825000 0.6770620
+-0.1824500 0.4467266
+-0.1824000 -0.4746150
+-0.1823500 0.6770620
+-0.1823000 -1.1656213
+-0.1822500 -2.5476337
+-0.1822000 -1.1656213
+-0.1821500 -1.1656213
+-0.1821000 -2.3172983
+-0.1820500 -1.8566275
+-0.1820000 -3.0083045
+-0.1819500 -0.7049504
+-0.1819000 0.4467266
+-0.1818500 -2.3172983
+-0.1818000 -1.3959567
+-0.1817500 -3.2386400
+-0.1817000 -2.3172983
+-0.1816500 -0.0139442
+-0.1816000 -0.0139442
+-0.1815500 -0.0139442
+-0.1815000 2.0590745
+-0.1814500 0.9073974
+-0.1814000 2.7500807
+-0.1813500 3.4410869
+-0.1813000 0.2163912
+-0.1812500 -0.9352859
+-0.1812000 2.2894099
+-0.1811500 2.2894099
+-0.1811000 -0.0139442
+-0.1810500 1.5984037
+-0.1810000 1.5984037
+-0.1809500 0.4467266
+-0.1809000 -0.0139442
+-0.1808500 -0.2442796
+-0.1808000 1.3680682
+-0.1807500 -0.7049504
+-0.1807000 -4.3903170
+-0.1806500 -3.4689754
+-0.1806000 -3.9296462
+-0.1805500 -1.3959567
+-0.1805000 -1.6262921
+-0.1804500 -0.4746150
+-0.1804000 -0.9352859
+-0.1803500 0.9073974
+-0.1803000 -0.4746150
+-0.1802500 -0.7049504
+-0.1802000 -0.9352859
+-0.1801500 1.5984037
+-0.1801000 -0.0139442
+-0.1800500 -1.6262921
+-0.1800000 -3.2386400
+-0.1799500 -2.5476337
+-0.1799000 -4.8509878
+-0.1798500 -2.3172983
+-0.1798000 -0.2442796
+-0.1797500 -1.6262921
+-0.1797000 -3.2386400
+-0.1796500 -4.8509878
+-0.1796000 -6.0026649
+-0.1795500 -6.2330003
+-0.1795000 -5.0813232
+-0.1794500 -3.4689754
+-0.1794000 -3.9296462
+-0.1793500 -4.6206524
+-0.1793000 -4.6206524
+-0.1792500 -3.0083045
+-0.1792000 -3.0083045
+-0.1791500 -1.8566275
+-0.1791000 0.2163912
+-0.1790500 -2.0869629
+-0.1790000 -2.3172983
+-0.1789500 -0.7049504
+-0.1789000 -1.3959567
+-0.1788500 -0.9352859
+-0.1788000 0.4467266
+-0.1787500 -2.7779691
+-0.1787000 -2.3172983
+-0.1786500 -2.3172983
+-0.1786000 0.2163912
+-0.1785500 -0.9352859
+-0.1785000 -1.8566275
+-0.1784500 1.8287391
+-0.1784000 0.4467266
+-0.1783500 0.9073974
+-0.1783000 1.5984037
+-0.1782500 0.2163912
+-0.1782000 1.8287391
+-0.1781500 -0.2442796
+-0.1781000 3.9017578
+-0.1780500 4.8230994
+-0.1780000 -0.0139442
+-0.1779500 0.4467266
+-0.1779000 1.8287391
+-0.1778500 2.7500807
+-0.1778000 -0.7049504
+-0.1777500 1.1377328
+-0.1777000 1.3680682
+-0.1776500 -0.2442796
+-0.1776000 0.4467266
+-0.1775500 2.9804161
+-0.1775000 0.6770620
+-0.1774500 1.1377328
+-0.1774000 3.2107515
+-0.1773500 -2.0869629
+-0.1773000 2.7500807
+-0.1772500 1.5984037
+-0.1772000 3.9017578
+-0.1771500 6.4354473
+-0.1771000 4.3624286
+-0.1770500 5.2837702
+-0.1770000 2.7500807
+-0.1769500 5.5141056
+-0.1769000 -0.0139442
+-0.1768500 2.7500807
+-0.1768000 1.3680682
+-0.1767500 2.5197453
+-0.1767000 1.8287391
+-0.1766500 1.8287391
+-0.1766000 -1.3959567
+-0.1765500 -0.0139442
+-0.1765000 -2.3172983
+-0.1764500 -3.4689754
+-0.1764000 -3.2386400
+-0.1763500 -3.2386400
+-0.1763000 -2.5476337
+-0.1762500 -5.3116586
+-0.1762000 -4.1599816
+-0.1761500 -1.1656213
+-0.1761000 -5.5419941
+-0.1760500 -2.5476337
+-0.1760000 -3.0083045
+-0.1759500 -5.3116586
+-0.1759000 -1.3959567
+-0.1758500 -0.0139442
+-0.1758000 -4.3903170
+-0.1757500 0.9073974
+-0.1757000 -1.3959567
+-0.1756500 -3.6993108
+-0.1756000 0.9073974
+-0.1755500 0.4467266
+-0.1755000 -3.2386400
+-0.1754500 -1.1656213
+-0.1754000 -2.5476337
+-0.1753500 -1.1656213
+-0.1753000 -3.2386400
+-0.1752500 -2.7779691
+-0.1752000 -3.6993108
+-0.1751500 -2.3172983
+-0.1751000 -3.6993108
+-0.1750500 -2.5476337
+-0.1750000 -3.6993108
+-0.1749500 -0.9352859
+-0.1749000 -0.0139442
+-0.1748500 -1.3959567
+-0.1748000 -1.6262921
+-0.1747500 -0.4746150
+-0.1747000 -0.9352859
+-0.1746500 0.6770620
+-0.1746000 -2.0869629
+-0.1745500 0.4467266
+-0.1745000 2.0590745
+-0.1744500 1.3680682
+-0.1744000 -1.8566275
+-0.1743500 1.8287391
+-0.1743000 -0.2442796
+-0.1742500 0.4467266
+-0.1742000 -0.4746150
+-0.1741500 -3.2386400
+-0.1741000 1.3680682
+-0.1740500 0.2163912
+-0.1740000 -0.4746150
+-0.1739500 1.1377328
+-0.1739000 0.4467266
+-0.1738500 -0.0139442
+-0.1738000 1.5984037
+-0.1737500 2.2894099
+-0.1737000 0.2163912
+-0.1736500 -0.0139442
+-0.1736000 3.2107515
+-0.1735500 1.3680682
+-0.1735000 2.0590745
+-0.1734500 0.2163912
+-0.1734000 -0.2442796
+-0.1733500 0.4467266
+-0.1733000 1.1377328
+-0.1732500 0.9073974
+-0.1732000 0.6770620
+-0.1731500 0.2163912
+-0.1731000 -2.3172983
+-0.1730500 -0.0139442
+-0.1730000 1.1377328
+-0.1729500 -0.2442796
+-0.1729000 1.3680682
+-0.1728500 -0.4746150
+-0.1728000 -0.2442796
+-0.1727500 0.2163912
+-0.1727000 0.2163912
+-0.1726500 -2.0869629
+-0.1726000 -2.0869629
+-0.1725500 -1.1656213
+-0.1725000 -0.4746150
+-0.1724500 -2.7779691
+-0.1724000 -2.5476337
+-0.1723500 -3.4689754
+-0.1723000 -3.2386400
+-0.1722500 -2.7779691
+-0.1722000 -4.8509878
+-0.1721500 -3.2386400
+-0.1721000 -2.3172983
+-0.1720500 -3.2386400
+-0.1720000 -0.4746150
+-0.1719500 -1.1656213
+-0.1719000 -3.0083045
+-0.1718500 -1.1656213
+-0.1718000 -1.3959567
+-0.1717500 -0.9352859
+-0.1717000 -2.3172983
+-0.1716500 -2.5476337
+-0.1716000 -1.3959567
+-0.1715500 -3.4689754
+-0.1715000 -1.6262921
+-0.1714500 -2.5476337
+-0.1714000 -3.6993108
+-0.1713500 -1.1656213
+-0.1713000 -2.7779691
+-0.1712500 -2.0869629
+-0.1712000 -1.3959567
+-0.1711500 -0.7049504
+-0.1711000 -4.1599816
+-0.1710500 -1.1656213
+-0.1710000 -2.5476337
+-0.1709500 0.2163912
+-0.1709000 -0.4746150
+-0.1708500 -1.3959567
+-0.1708000 -1.6262921
+-0.1707500 1.1377328
+-0.1707000 -0.9352859
+-0.1706500 2.2894099
+-0.1706000 0.2163912
+-0.1705500 -1.3959567
+-0.1705000 -0.0139442
+-0.1704500 -0.7049504
+-0.1704000 -1.3959567
+-0.1703500 -1.8566275
+-0.1703000 -2.7779691
+-0.1702500 -3.4689754
+-0.1702000 -1.8566275
+-0.1701500 -3.2386400
+-0.1701000 -3.4689754
+-0.1700500 -2.3172983
+-0.1700000 -3.2386400
+-0.1699500 -4.1599816
+-0.1699000 -2.0869629
+-0.1698500 -0.4746150
+-0.1698000 -2.7779691
+-0.1697500 1.5984037
+-0.1697000 1.5984037
+-0.1696500 -0.4746150
+-0.1696000 -0.7049504
+-0.1695500 0.6770620
+-0.1695000 -0.9352859
+-0.1694500 -0.4746150
+-0.1694000 -1.1656213
+-0.1693500 -1.8566275
+-0.1693000 -2.7779691
+-0.1692500 -1.8566275
+-0.1692000 -0.9352859
+-0.1691500 -0.9352859
+-0.1691000 -1.1656213
+-0.1690500 -3.0083045
+-0.1690000 -1.3959567
+-0.1689500 -1.6262921
+-0.1689000 -2.3172983
+-0.1688500 -2.0869629
+-0.1688000 -1.8566275
+-0.1687500 -1.8566275
+-0.1687000 0.4467266
+-0.1686500 -2.0869629
+-0.1686000 -1.3959567
+-0.1685500 -1.3959567
+-0.1685000 -2.3172983
+-0.1684500 -0.7049504
+-0.1684000 -0.4746150
+-0.1683500 -1.8566275
+-0.1683000 -1.3959567
+-0.1682500 -3.9296462
+-0.1682000 -1.6262921
+-0.1681500 -0.7049504
+-0.1681000 -0.4746150
+-0.1680500 -1.3959567
+-0.1680000 -2.3172983
+-0.1679500 -2.3172983
+-0.1679000 -2.3172983
+-0.1678500 -1.8566275
+-0.1678000 -3.0083045
+-0.1677500 -2.3172983
+-0.1677000 -3.9296462
+-0.1676500 -2.3172983
+-0.1676000 -3.0083045
+-0.1675500 -3.0083045
+-0.1675000 -3.2386400
+-0.1674500 -3.9296462
+-0.1674000 0.9073974
+-0.1673500 -1.6262921
+-0.1673000 -1.1656213
+-0.1672500 -0.7049504
+-0.1672000 -2.7779691
+-0.1671500 -2.0869629
+-0.1671000 -1.3959567
+-0.1670500 -3.4689754
+-0.1670000 -2.7779691
+-0.1669500 -4.1599816
+-0.1669000 -5.7723295
+-0.1668500 -3.2386400
+-0.1668000 -1.3959567
+-0.1667500 -3.6993108
+-0.1667000 -1.3959567
+-0.1666500 -3.9296462
+-0.1666000 -3.0083045
+-0.1665500 -4.3903170
+-0.1665000 -0.9352859
+-0.1664500 0.9073974
+-0.1664000 -1.3959567
+-0.1663500 -1.1656213
+-0.1663000 0.4467266
+-0.1662500 0.2163912
+-0.1662000 -0.9352859
+-0.1661500 -1.6262921
+-0.1661000 -1.6262921
+-0.1660500 -2.5476337
+-0.1660000 -3.2386400
+-0.1659500 -0.9352859
+-0.1659000 -2.0869629
+-0.1658500 -4.1599816
+-0.1658000 -5.0813232
+-0.1657500 -3.4689754
+-0.1657000 -3.2386400
+-0.1656500 -3.4689754
+-0.1656000 -2.7779691
+-0.1655500 -1.1656213
+-0.1655000 -2.5476337
+-0.1654500 -2.5476337
+-0.1654000 -4.6206524
+-0.1653500 -1.3959567
+-0.1653000 -0.9352859
+-0.1652500 1.8287391
+-0.1652000 0.2163912
+-0.1651500 3.6714223
+-0.1651000 -0.9352859
+-0.1650500 1.5984037
+-0.1650000 -0.0139442
+-0.1649500 -0.2442796
+-0.1649000 2.9804161
+-0.1648500 -0.7049504
+-0.1648000 0.6770620
+-0.1647500 -3.4689754
+-0.1647000 1.3680682
+-0.1646500 0.4467266
+-0.1646000 0.4467266
+-0.1645500 -0.9352859
+-0.1645000 -0.9352859
+-0.1644500 -4.1599816
+-0.1644000 -2.7779691
+-0.1643500 -3.2386400
+-0.1643000 -2.3172983
+-0.1642500 -1.3959567
+-0.1642000 -3.4689754
+-0.1641500 -3.0083045
+-0.1641000 -3.0083045
+-0.1640500 -3.4689754
+-0.1640000 -2.5476337
+-0.1639500 -1.3959567
+-0.1639000 -1.6262921
+-0.1638500 -0.7049504
+-0.1638000 1.1377328
+-0.1637500 -0.9352859
+-0.1637000 -2.0869629
+-0.1636500 -3.0083045
+-0.1636000 0.2163912
+-0.1635500 -3.2386400
+-0.1635000 1.1377328
+-0.1634500 -0.2442796
+-0.1634000 -2.3172983
+-0.1633500 -2.0869629
+-0.1633000 -3.0083045
+-0.1632500 -2.5476337
+-0.1632000 0.6770620
+-0.1631500 -2.5476337
+-0.1631000 -4.6206524
+-0.1630500 -1.6262921
+-0.1630000 -3.6993108
+-0.1629500 -2.3172983
+-0.1629000 -1.6262921
+-0.1628500 -2.3172983
+-0.1628000 0.2163912
+-0.1627500 -1.1656213
+-0.1627000 -0.7049504
+-0.1626500 0.4467266
+-0.1626000 0.2163912
+-0.1625500 -0.2442796
+-0.1625000 0.6770620
+-0.1624500 0.2163912
+-0.1624000 1.8287391
+-0.1623500 1.1377328
+-0.1623000 -0.4746150
+-0.1622500 0.2163912
+-0.1622000 -1.3959567
+-0.1621500 -0.2442796
+-0.1621000 0.2163912
+-0.1620500 -1.6262921
+-0.1620000 -2.0869629
+-0.1619500 -2.3172983
+-0.1619000 -0.2442796
+-0.1618500 -0.9352859
+-0.1618000 -1.3959567
+-0.1617500 -2.3172983
+-0.1617000 1.1377328
+-0.1616500 0.9073974
+-0.1616000 -0.9352859
+-0.1615500 2.2894099
+-0.1615000 0.6770620
+-0.1614500 0.9073974
+-0.1614000 -0.4746150
+-0.1613500 0.2163912
+-0.1613000 2.2894099
+-0.1612500 -0.2442796
+-0.1612000 -0.7049504
+-0.1611500 0.2163912
+-0.1611000 -0.2442796
+-0.1610500 -0.4746150
+-0.1610000 -2.0869629
+-0.1609500 -0.2442796
+-0.1609000 -1.6262921
+-0.1608500 0.2163912
+-0.1608000 -3.4689754
+-0.1607500 -4.1599816
+-0.1607000 -3.2386400
+-0.1606500 -4.1599816
+-0.1606000 -3.0083045
+-0.1605500 -3.9296462
+-0.1605000 -3.6993108
+-0.1604500 -3.0083045
+-0.1604000 -2.5476337
+-0.1603500 -5.7723295
+-0.1603000 -3.2386400
+-0.1602500 -0.4746150
+-0.1602000 -2.7779691
+-0.1601500 -2.5476337
+-0.1601000 -1.8566275
+-0.1600500 -0.7049504
+-0.1600000 -2.7779691
+-0.1599500 -0.0139442
+-0.1599000 -4.1599816
+-0.1598500 -0.7049504
+-0.1598000 -2.5476337
+-0.1597500 -5.5419941
+-0.1597000 -1.1656213
+-0.1596500 -3.0083045
+-0.1596000 -2.0869629
+-0.1595500 -3.0083045
+-0.1595000 -2.3172983
+-0.1594500 -2.7779691
+-0.1594000 -1.8566275
+-0.1593500 -0.2442796
+-0.1593000 -0.9352859
+-0.1592500 -0.7049504
+-0.1592000 1.8287391
+-0.1591500 2.7500807
+-0.1591000 -0.9352859
+-0.1590500 1.3680682
+-0.1590000 0.6770620
+-0.1589500 2.5197453
+-0.1589000 3.2107515
+-0.1588500 2.2894099
+-0.1588000 2.7500807
+-0.1587500 1.1377328
+-0.1587000 1.1377328
+-0.1586500 -1.8566275
+-0.1586000 4.1320932
+-0.1585500 2.0590745
+-0.1585000 3.4410869
+-0.1584500 2.0590745
+-0.1584000 3.9017578
+-0.1583500 3.2107515
+-0.1583000 2.5197453
+-0.1582500 2.2894099
+-0.1582000 5.5141056
+-0.1581500 2.9804161
+-0.1581000 2.0590745
+-0.1580500 3.9017578
+-0.1580000 0.9073974
+-0.1579500 2.0590745
+-0.1579000 0.2163912
+-0.1578500 -3.9296462
+-0.1578000 -2.3172983
+-0.1577500 1.3680682
+-0.1577000 -0.4746150
+-0.1576500 1.3680682
+-0.1576000 1.3680682
+-0.1575500 0.6770620
+-0.1575000 1.1377328
+-0.1574500 -1.6262921
+-0.1574000 -1.3959567
+-0.1573500 -1.6262921
+-0.1573000 -3.9296462
+-0.1572500 -0.2442796
+-0.1572000 1.8287391
+-0.1571500 0.2163912
+-0.1571000 1.1377328
+-0.1570500 1.1377328
+-0.1570000 0.9073974
+-0.1569500 1.3680682
+-0.1569000 0.9073974
+-0.1568500 1.3680682
+-0.1568000 -3.4689754
+-0.1567500 -3.2386400
+-0.1567000 -3.0083045
+-0.1566500 -2.5476337
+-0.1566000 -2.0869629
+-0.1565500 -3.9296462
+-0.1565000 -7.3846773
+-0.1564500 -3.4689754
+-0.1564000 -5.3116586
+-0.1563500 -3.0083045
+-0.1563000 -4.8509878
+-0.1562500 -5.5419941
+-0.1562000 -1.6262921
+-0.1561500 -2.0869629
+-0.1561000 -1.6262921
+-0.1560500 -3.0083045
+-0.1560000 1.1377328
+-0.1559500 -1.8566275
+-0.1559000 -0.0139442
+-0.1558500 -2.0869629
+-0.1558000 -0.9352859
+-0.1557500 0.6770620
+-0.1557000 0.2163912
+-0.1556500 0.6770620
+-0.1556000 1.1377328
+-0.1555500 1.1377328
+-0.1555000 -1.1656213
+-0.1554500 -0.7049504
+-0.1554000 -0.4746150
+-0.1553500 0.4467266
+-0.1553000 -0.9352859
+-0.1552500 -1.8566275
+-0.1552000 -0.9352859
+-0.1551500 1.1377328
+-0.1551000 2.0590745
+-0.1550500 2.2894099
+-0.1550000 2.2894099
+-0.1549500 -0.0139442
+-0.1549000 2.2894099
+-0.1548500 3.2107515
+-0.1548000 2.2894099
+-0.1547500 3.2107515
+-0.1547000 -0.0139442
+-0.1546500 0.9073974
+-0.1546000 -1.8566275
+-0.1545500 3.4410869
+-0.1545000 -0.7049504
+-0.1544500 1.1377328
+-0.1544000 -0.2442796
+-0.1543500 -0.0139442
+-0.1543000 0.4467266
+-0.1542500 1.5984037
+-0.1542000 -0.4746150
+-0.1541500 1.3680682
+-0.1541000 0.2163912
+-0.1540500 1.8287391
+-0.1540000 -0.2442796
+-0.1539500 3.2107515
+-0.1539000 0.9073974
+-0.1538500 2.2894099
+-0.1538000 0.6770620
+-0.1537500 0.6770620
+-0.1537000 0.4467266
+-0.1536500 -0.4746150
+-0.1536000 1.1377328
+-0.1535500 0.9073974
+-0.1535000 -0.2442796
+-0.1534500 -0.4746150
+-0.1534000 -0.0139442
+-0.1533500 -0.0139442
+-0.1533000 0.9073974
+-0.1532500 0.4467266
+-0.1532000 0.6770620
+-0.1531500 -2.0869629
+-0.1531000 -0.7049504
+-0.1530500 -0.4746150
+-0.1530000 -2.3172983
+-0.1529500 -0.7049504
+-0.1529000 -3.0083045
+-0.1528500 -1.8566275
+-0.1528000 -3.4689754
+-0.1527500 -1.8566275
+-0.1527000 -2.5476337
+-0.1526500 -1.3959567
+-0.1526000 -1.6262921
+-0.1525500 -1.8566275
+-0.1525000 -5.3116586
+-0.1524500 -1.3959567
+-0.1524000 -1.8566275
+-0.1523500 -4.6206524
+-0.1523000 0.2163912
+-0.1522500 -1.6262921
+-0.1522000 0.4467266
+-0.1521500 0.6770620
+-0.1521000 -1.8566275
+-0.1520500 -2.3172983
+-0.1520000 -2.5476337
+-0.1519500 -0.7049504
+-0.1519000 -0.4746150
+-0.1518500 -0.7049504
+-0.1518000 -1.1656213
+-0.1517500 -1.8566275
+-0.1517000 -0.2442796
+-0.1516500 -2.3172983
+-0.1516000 -2.3172983
+-0.1515500 -3.4689754
+-0.1515000 -3.9296462
+-0.1514500 -1.8566275
+-0.1514000 -2.0869629
+-0.1513500 -2.3172983
+-0.1513000 0.9073974
+-0.1512500 -4.8509878
+-0.1512000 -1.1656213
+-0.1511500 -1.1656213
+-0.1511000 -0.9352859
+-0.1510500 -0.7049504
+-0.1510000 -0.7049504
+-0.1509500 -0.7049504
+-0.1509000 2.0590745
+-0.1508500 -0.9352859
+-0.1508000 1.5984037
+-0.1507500 0.9073974
+-0.1507000 2.7500807
+-0.1506500 3.2107515
+-0.1506000 1.8287391
+-0.1505500 -0.4746150
+-0.1505000 -1.6262921
+-0.1504500 -3.9296462
+-0.1504000 -5.7723295
+-0.1503500 -4.1599816
+-0.1503000 -5.5419941
+-0.1502500 -3.6993108
+-0.1502000 -2.5476337
+-0.1501500 -2.0869629
+-0.1501000 -1.8566275
+-0.1500500 -4.6206524
+-0.1500000 -4.3903170
+-0.1499500 -2.3172983
+-0.1499000 -0.7049504
+-0.1498500 -0.4746150
+-0.1498000 0.4467266
+-0.1497500 1.5984037
+-0.1497000 1.5984037
+-0.1496500 -0.0139442
+-0.1496000 0.4467266
+-0.1495500 -1.1656213
+-0.1495000 2.0590745
+-0.1494500 0.4467266
+-0.1494000 0.9073974
+-0.1493500 -0.7049504
+-0.1493000 -1.1656213
+-0.1492500 -3.6993108
+-0.1492000 -1.3959567
+-0.1491500 0.6770620
+-0.1491000 -3.0083045
+-0.1490500 -3.9296462
+-0.1490000 -0.4746150
+-0.1489500 -1.8566275
+-0.1489000 -1.3959567
+-0.1488500 -1.6262921
+-0.1488000 -1.3959567
+-0.1487500 -1.8566275
+-0.1487000 -1.6262921
+-0.1486500 -0.4746150
+-0.1486000 -1.8566275
+-0.1485500 -3.2386400
+-0.1485000 -3.4689754
+-0.1484500 -1.1656213
+-0.1484000 -5.5419941
+-0.1483500 -0.0139442
+-0.1483000 -3.4689754
+-0.1482500 -1.8566275
+-0.1482000 0.4467266
+-0.1481500 -2.0869629
+-0.1481000 -3.0083045
+-0.1480500 0.6770620
+-0.1480000 -0.4746150
+-0.1479500 -1.3959567
+-0.1479000 -3.0083045
+-0.1478500 -2.0869629
+-0.1478000 -3.2386400
+-0.1477500 -2.0869629
+-0.1477000 -1.6262921
+-0.1476500 -1.1656213
+-0.1476000 -1.3959567
+-0.1475500 -3.2386400
+-0.1475000 -1.6262921
+-0.1474500 -1.8566275
+-0.1474000 -1.8566275
+-0.1473500 -2.0869629
+-0.1473000 -0.7049504
+-0.1472500 -1.3959567
+-0.1472000 -4.3903170
+-0.1471500 -3.0083045
+-0.1471000 -3.2386400
+-0.1470500 -2.5476337
+-0.1470000 -4.8509878
+-0.1469500 -3.6993108
+-0.1469000 -3.6993108
+-0.1468500 -1.8566275
+-0.1468000 -2.5476337
+-0.1467500 -4.1599816
+-0.1467000 -0.2442796
+-0.1466500 -3.2386400
+-0.1466000 2.2894099
+-0.1465500 0.4467266
+-0.1465000 1.1377328
+-0.1464500 -0.4746150
+-0.1464000 -1.8566275
+-0.1463500 0.6770620
+-0.1463000 -3.0083045
+-0.1462500 -4.3903170
+-0.1462000 -3.4689754
+-0.1461500 -0.7049504
+-0.1461000 -3.0083045
+-0.1460500 -3.6993108
+-0.1460000 -1.8566275
+-0.1459500 -3.0083045
+-0.1459000 -3.0083045
+-0.1458500 -0.4746150
+-0.1458000 -2.5476337
+-0.1457500 -1.6262921
+-0.1457000 -2.5476337
+-0.1456500 -2.3172983
+-0.1456000 -0.4746150
+-0.1455500 -1.6262921
+-0.1455000 -3.4689754
+-0.1454500 -2.3172983
+-0.1454000 -2.0869629
+-0.1453500 -1.6262921
+-0.1453000 -0.2442796
+-0.1452500 -0.7049504
+-0.1452000 -0.2442796
+-0.1451500 -0.0139442
+-0.1451000 -1.1656213
+-0.1450500 -1.8566275
+-0.1450000 -1.1656213
+-0.1449500 0.2163912
+-0.1449000 0.9073974
+-0.1448500 -0.9352859
+-0.1448000 -1.8566275
+-0.1447500 0.6770620
+-0.1447000 1.5984037
+-0.1446500 -1.6262921
+-0.1446000 -1.1656213
+-0.1445500 -3.9296462
+-0.1445000 -1.3959567
+-0.1444500 -3.0083045
+-0.1444000 -3.9296462
+-0.1443500 -3.0083045
+-0.1443000 -3.0083045
+-0.1442500 -3.2386400
+-0.1442000 -0.7049504
+-0.1441500 -3.4689754
+-0.1441000 -0.4746150
+-0.1440500 -2.3172983
+-0.1440000 -3.9296462
+-0.1439500 -2.5476337
+-0.1439000 -0.2442796
+-0.1438500 0.9073974
+-0.1438000 -0.9352859
+-0.1437500 0.6770620
+-0.1437000 -2.0869629
+-0.1436500 -0.0139442
+-0.1436000 -2.7779691
+-0.1435500 -1.1656213
+-0.1435000 -0.2442796
+-0.1434500 -0.0139442
+-0.1434000 -1.3959567
+-0.1433500 -1.1656213
+-0.1433000 -2.3172983
+-0.1432500 -0.7049504
+-0.1432000 -0.2442796
+-0.1431500 -0.4746150
+-0.1431000 0.4467266
+-0.1430500 0.4467266
+-0.1430000 -1.3959567
+-0.1429500 -2.3172983
+-0.1429000 -0.9352859
+-0.1428500 -0.2442796
+-0.1428000 -0.4746150
+-0.1427500 2.0590745
+-0.1427000 1.3680682
+-0.1426500 -2.7779691
+-0.1426000 -0.4746150
+-0.1425500 0.2163912
+-0.1425000 -0.4746150
+-0.1424500 0.9073974
+-0.1424000 1.5984037
+-0.1423500 0.6770620
+-0.1423000 1.3680682
+-0.1422500 -2.5476337
+-0.1422000 -3.6993108
+-0.1421500 -2.0869629
+-0.1421000 -0.0139442
+-0.1420500 -0.9352859
+-0.1420000 -2.3172983
+-0.1419500 0.2163912
+-0.1419000 -3.2386400
+-0.1418500 -2.5476337
+-0.1418000 -0.0139442
+-0.1417500 -2.0869629
+-0.1417000 2.0590745
+-0.1416500 -1.3959567
+-0.1416000 -0.9352859
+-0.1415500 0.2163912
+-0.1415000 -0.7049504
+-0.1414500 0.9073974
+-0.1414000 -1.3959567
+-0.1413500 -0.2442796
+-0.1413000 -1.1656213
+-0.1412500 0.6770620
+-0.1412000 -2.5476337
+-0.1411500 -1.6262921
+-0.1411000 -1.6262921
+-0.1410500 -2.3172983
+-0.1410000 -3.0083045
+-0.1409500 -3.6993108
+-0.1409000 -2.3172983
+-0.1408500 -0.2442796
+-0.1408000 -5.0813232
+-0.1407500 -2.7779691
+-0.1407000 -3.0083045
+-0.1406500 -4.1599816
+-0.1406000 -3.4689754
+-0.1405500 -1.6262921
+-0.1405000 -0.9352859
+-0.1404500 -2.5476337
+-0.1404000 -1.8566275
+-0.1403500 -0.2442796
+-0.1403000 -1.8566275
+-0.1402500 -1.3959567
+-0.1402000 0.6770620
+-0.1401500 -1.3959567
+-0.1401000 -0.7049504
+-0.1400500 -0.9352859
+-0.1400000 -0.7049504
+-0.1399500 -0.0139442
+-0.1399000 -2.3172983
+-0.1398500 -2.3172983
+-0.1398000 -0.4746150
+-0.1397500 -1.3959567
+-0.1397000 -0.2442796
+-0.1396500 0.6770620
+-0.1396000 -1.6262921
+-0.1395500 -2.7779691
+-0.1395000 -0.4746150
+-0.1394500 -0.4746150
+-0.1394000 0.2163912
+-0.1393500 1.3680682
+-0.1393000 0.9073974
+-0.1392500 1.1377328
+-0.1392000 0.9073974
+-0.1391500 1.8287391
+-0.1391000 2.7500807
+-0.1390500 0.2163912
+-0.1390000 2.7500807
+-0.1389500 0.9073974
+-0.1389000 1.1377328
+-0.1388500 2.2894099
+-0.1388000 2.9804161
+-0.1387500 -0.7049504
+-0.1387000 -0.7049504
+-0.1386500 1.3680682
+-0.1386000 2.7500807
+-0.1385500 2.0590745
+-0.1385000 0.9073974
+-0.1384500 2.2894099
+-0.1384000 2.7500807
+-0.1383500 1.3680682
+-0.1383000 1.1377328
+-0.1382500 -0.7049504
+-0.1382000 1.5984037
+-0.1381500 -0.9352859
+-0.1381000 -1.8566275
+-0.1380500 1.1377328
+-0.1380000 0.4467266
+-0.1379500 1.8287391
+-0.1379000 1.1377328
+-0.1378500 -1.1656213
+-0.1378000 3.9017578
+-0.1377500 1.5984037
+-0.1377000 -1.3959567
+-0.1376500 -0.2442796
+-0.1376000 1.3680682
+-0.1375500 -0.4746150
+-0.1375000 -0.4746150
+-0.1374500 -1.1656213
+-0.1374000 -0.2442796
+-0.1373500 -1.3959567
+-0.1373000 -1.3959567
+-0.1372500 -1.8566275
+-0.1372000 -1.6262921
+-0.1371500 -2.5476337
+-0.1371000 -0.2442796
+-0.1370500 -2.7779691
+-0.1370000 -1.8566275
+-0.1369500 -3.2386400
+-0.1369000 -0.7049504
+-0.1368500 -3.9296462
+-0.1368000 -1.3959567
+-0.1367500 -2.0869629
+-0.1367000 -3.2386400
+-0.1366500 -3.9296462
+-0.1366000 -4.1599816
+-0.1365500 -5.0813232
+-0.1365000 -2.5476337
+-0.1364500 -1.8566275
+-0.1364000 -6.2330003
+-0.1363500 -3.0083045
+-0.1363000 -2.3172983
+-0.1362500 -1.3959567
+-0.1362000 -3.6993108
+-0.1361500 -2.7779691
+-0.1361000 0.2163912
+-0.1360500 -1.3959567
+-0.1360000 -0.0139442
+-0.1359500 -0.4746150
+-0.1359000 -1.1656213
+-0.1358500 3.2107515
+-0.1358000 1.3680682
+-0.1357500 1.8287391
+-0.1357000 0.9073974
+-0.1356500 0.2163912
+-0.1356000 2.2894099
+-0.1355500 4.1320932
+-0.1355000 2.2894099
+-0.1354500 -1.1656213
+-0.1354000 1.8287391
+-0.1353500 1.1377328
+-0.1353000 2.0590745
+-0.1352500 2.7500807
+-0.1352000 2.5197453
+-0.1351500 2.2894099
+-0.1351000 3.9017578
+-0.1350500 -0.0139442
+-0.1350000 3.9017578
+-0.1349500 1.3680682
+-0.1349000 2.5197453
+-0.1348500 3.4410869
+-0.1348000 3.2107515
+-0.1347500 5.2837702
+-0.1347000 4.1320932
+-0.1346500 4.1320932
+-0.1346000 2.9804161
+-0.1345500 1.8287391
+-0.1345000 2.7500807
+-0.1344500 2.5197453
+-0.1344000 1.8287391
+-0.1343500 0.9073974
+-0.1343000 1.5984037
+-0.1342500 -0.9352859
+-0.1342000 2.2894099
+-0.1341500 -0.4746150
+-0.1341000 1.8287391
+-0.1340500 0.6770620
+-0.1340000 -1.6262921
+-0.1339500 0.4467266
+-0.1339000 -0.2442796
+-0.1338500 -1.8566275
+-0.1338000 -0.0139442
+-0.1337500 -0.7049504
+-0.1337000 0.6770620
+-0.1336500 -2.0869629
+-0.1336000 -2.7779691
+-0.1335500 -1.1656213
+-0.1335000 -1.1656213
+-0.1334500 -0.2442796
+-0.1334000 -1.1656213
+-0.1333500 1.5984037
+-0.1333000 -2.0869629
+-0.1332500 -1.8566275
+-0.1332000 -0.0139442
+-0.1331500 -0.4746150
+-0.1331000 -1.1656213
+-0.1330500 -2.0869629
+-0.1330000 -1.1656213
+-0.1329500 -4.1599816
+-0.1329000 -1.8566275
+-0.1328500 -1.8566275
+-0.1328000 -3.0083045
+-0.1327500 -1.1656213
+-0.1327000 -2.5476337
+-0.1326500 -2.5476337
+-0.1326000 -2.5476337
+-0.1325500 -1.6262921
+-0.1325000 -1.1656213
+-0.1324500 -1.6262921
+-0.1324000 -1.6262921
+-0.1323500 0.4467266
+-0.1323000 -3.2386400
+-0.1322500 -0.4746150
+-0.1322000 -0.0139442
+-0.1321500 -1.1656213
+-0.1321000 0.2163912
+-0.1320500 1.3680682
+-0.1320000 -0.2442796
+-0.1319500 2.9804161
+-0.1319000 -1.8566275
+-0.1318500 1.3680682
+-0.1318000 1.5984037
+-0.1317500 -2.5476337
+-0.1317000 -2.7779691
+-0.1316500 -1.1656213
+-0.1316000 0.2163912
+-0.1315500 0.4467266
+-0.1315000 -0.2442796
+-0.1314500 -0.0139442
+-0.1314000 1.5984037
+-0.1313500 -0.4746150
+-0.1313000 -2.3172983
+-0.1312500 1.1377328
+-0.1312000 1.8287391
+-0.1311500 -0.4746150
+-0.1311000 0.6770620
+-0.1310500 2.0590745
+-0.1310000 1.8287391
+-0.1309500 -2.0869629
+-0.1309000 0.6770620
+-0.1308500 1.1377328
+-0.1308000 -0.9352859
+-0.1307500 -0.0139442
+-0.1307000 0.6770620
+-0.1306500 3.4410869
+-0.1306000 -0.4746150
+-0.1305500 -1.1656213
+-0.1305000 -2.3172983
+-0.1304500 -4.1599816
+-0.1304000 -1.3959567
+-0.1303500 -2.5476337
+-0.1303000 -4.8509878
+-0.1302500 -4.3903170
+-0.1302000 -3.2386400
+-0.1301500 -3.0083045
+-0.1301000 -4.1599816
+-0.1300500 -0.0139442
+-0.1300000 -2.7779691
+-0.1299500 -0.7049504
+-0.1299000 -1.8566275
+-0.1298500 -0.7049504
+-0.1298000 -2.0869629
+-0.1297500 -0.0139442
+-0.1297000 1.5984037
+-0.1296500 0.9073974
+-0.1296000 -1.8566275
+-0.1295500 -0.4746150
+-0.1295000 -1.6262921
+-0.1294500 -3.9296462
+-0.1294000 -0.4746150
+-0.1293500 -2.0869629
+-0.1293000 -4.1599816
+-0.1292500 -1.3959567
+-0.1292000 -1.1656213
+-0.1291500 -3.4689754
+-0.1291000 -3.9296462
+-0.1290500 -2.3172983
+-0.1290000 -1.8566275
+-0.1289500 -3.0083045
+-0.1289000 -4.3903170
+-0.1288500 -2.0869629
+-0.1288000 -1.8566275
+-0.1287500 -3.2386400
+-0.1287000 -0.7049504
+-0.1286500 0.2163912
+-0.1286000 -0.2442796
+-0.1285500 1.8287391
+-0.1285000 0.4467266
+-0.1284500 -3.4689754
+-0.1284000 -1.8566275
+-0.1283500 0.2163912
+-0.1283000 -0.9352859
+-0.1282500 -1.1656213
+-0.1282000 -2.5476337
+-0.1281500 -0.4746150
+-0.1281000 -1.1656213
+-0.1280500 -3.0083045
+-0.1280000 -1.1656213
+-0.1279500 -2.0869629
+-0.1279000 -0.4746150
+-0.1278500 -1.8566275
+-0.1278000 -0.2442796
+-0.1277500 -1.3959567
+-0.1277000 -0.4746150
+-0.1276500 2.2894099
+-0.1276000 -1.8566275
+-0.1275500 -2.0869629
+-0.1275000 0.4467266
+-0.1274500 -2.7779691
+-0.1274000 -0.2442796
+-0.1273500 0.9073974
+-0.1273000 0.6770620
+-0.1272500 -3.4689754
+-0.1272000 -3.6993108
+-0.1271500 -5.3116586
+-0.1271000 -4.1599816
+-0.1270500 -3.0083045
+-0.1270000 -6.0026649
+-0.1269500 -4.3903170
+-0.1269000 -5.3116586
+-0.1268500 -3.9296462
+-0.1268000 -5.3116586
+-0.1267500 -3.0083045
+-0.1267000 -2.7779691
+-0.1266500 -1.6262921
+-0.1266000 -1.1656213
+-0.1265500 -1.6262921
+-0.1265000 0.2163912
+-0.1264500 0.6770620
+-0.1264000 -0.9352859
+-0.1263500 0.6770620
+-0.1263000 -1.8566275
+-0.1262500 1.1377328
+-0.1262000 0.6770620
+-0.1261500 -2.7779691
+-0.1261000 -2.7779691
+-0.1260500 -0.2442796
+-0.1260000 -0.4746150
+-0.1259500 -2.3172983
+-0.1259000 -4.1599816
+-0.1258500 -3.2386400
+-0.1258000 -3.6993108
+-0.1257500 -4.3903170
+-0.1257000 -2.0869629
+-0.1256500 -2.5476337
+-0.1256000 -0.9352859
+-0.1255500 0.2163912
+-0.1255000 0.2163912
+-0.1254500 -1.3959567
+-0.1254000 -0.2442796
+-0.1253500 1.1377328
+-0.1253000 -0.7049504
+-0.1252500 2.5197453
+-0.1252000 1.3680682
+-0.1251500 1.3680682
+-0.1251000 0.2163912
+-0.1250500 0.6770620
+-0.1250000 -0.7049504
+-0.1249500 -0.2442796
+-0.1249000 -1.3959567
+-0.1248500 -1.6262921
+-0.1248000 -0.0139442
+-0.1247500 -2.0869629
+-0.1247000 -1.8566275
+-0.1246500 -2.5476337
+-0.1246000 -1.1656213
+-0.1245500 -2.0869629
+-0.1245000 -0.7049504
+-0.1244500 -1.8566275
+-0.1244000 -1.8566275
+-0.1243500 -2.5476337
+-0.1243000 -2.0869629
+-0.1242500 -2.7779691
+-0.1242000 -0.7049504
+-0.1241500 -2.5476337
+-0.1241000 -0.9352859
+-0.1240500 -0.0139442
+-0.1240000 -0.4746150
+-0.1239500 -2.7779691
+-0.1239000 -1.3959567
+-0.1238500 -0.0139442
+-0.1238000 0.2163912
+-0.1237500 0.6770620
+-0.1237000 -1.6262921
+-0.1236500 -2.3172983
+-0.1236000 -3.0083045
+-0.1235500 -1.8566275
+-0.1235000 -0.7049504
+-0.1234500 -0.9352859
+-0.1234000 -0.0139442
+-0.1233500 -1.8566275
+-0.1233000 1.3680682
+-0.1232500 -1.3959567
+-0.1232000 -2.5476337
+-0.1231500 0.6770620
+-0.1231000 -0.9352859
+-0.1230500 -1.3959567
+-0.1230000 -2.3172983
+-0.1229500 -1.3959567
+-0.1229000 1.8287391
+-0.1228500 -2.3172983
+-0.1228000 -1.6262921
+-0.1227500 -0.0139442
+-0.1227000 0.4467266
+-0.1226500 -0.7049504
+-0.1226000 -0.4746150
+-0.1225500 -2.7779691
+-0.1225000 -2.0869629
+-0.1224500 1.5984037
+-0.1224000 -0.0139442
+-0.1223500 -0.4746150
+-0.1223000 -0.4746150
+-0.1222500 -0.4746150
+-0.1222000 -1.6262921
+-0.1221500 -0.0139442
+-0.1221000 0.2163912
+-0.1220500 -0.0139442
+-0.1220000 -3.2386400
+-0.1219500 -1.3959567
+-0.1219000 0.9073974
+-0.1218500 -1.8566275
+-0.1218000 1.1377328
+-0.1217500 2.0590745
+-0.1217000 1.1377328
+-0.1216500 -0.0139442
+-0.1216000 -0.4746150
+-0.1215500 0.6770620
+-0.1215000 -0.2442796
+-0.1214500 0.6770620
+-0.1214000 -0.9352859
+-0.1213500 -0.9352859
+-0.1213000 -0.9352859
+-0.1212500 1.5984037
+-0.1212000 -2.3172983
+-0.1211500 -1.3959567
+-0.1211000 -1.8566275
+-0.1210500 -0.0139442
+-0.1210000 -0.7049504
+-0.1209500 -2.3172983
+-0.1209000 -0.7049504
+-0.1208500 -1.6262921
+-0.1208000 -4.8509878
+-0.1207500 -3.0083045
+-0.1207000 -0.4746150
+-0.1206500 -3.4689754
+-0.1206000 -2.7779691
+-0.1205500 -3.4689754
+-0.1205000 -1.3959567
+-0.1204500 0.6770620
+-0.1204000 -1.1656213
+-0.1203500 1.8287391
+-0.1203000 2.5197453
+-0.1202500 -0.4746150
+-0.1202000 1.3680682
+-0.1201500 3.9017578
+-0.1201000 0.2163912
+-0.1200500 2.5197453
+-0.1200000 2.0590745
+-0.1199500 1.5984037
+-0.1199000 2.2894099
+-0.1198500 -0.2442796
+-0.1198000 -0.4746150
+-0.1197500 0.9073974
+-0.1197000 3.6714223
+-0.1196500 -1.6262921
+-0.1196000 3.6714223
+-0.1195500 1.5984037
+-0.1195000 1.5984037
+-0.1194500 1.8287391
+-0.1194000 2.7500807
+-0.1193500 2.5197453
+-0.1193000 2.2894099
+-0.1192500 3.9017578
+-0.1192000 2.0590745
+-0.1191500 4.1320932
+-0.1191000 3.6714223
+-0.1190500 3.4410869
+-0.1190000 2.0590745
+-0.1189500 3.4410869
+-0.1189000 0.6770620
+-0.1188500 2.2894099
+-0.1188000 -0.2442796
+-0.1187500 0.6770620
+-0.1187000 -0.9352859
+-0.1186500 1.8287391
+-0.1186000 2.2894099
+-0.1185500 -0.2442796
+-0.1185000 0.6770620
+-0.1184500 -0.0139442
+-0.1184000 2.0590745
+-0.1183500 -1.3959567
+-0.1183000 -2.0869629
+-0.1182500 0.9073974
+-0.1182000 1.5984037
+-0.1181500 -0.9352859
+-0.1181000 -2.7779691
+-0.1180500 -1.3959567
+-0.1180000 -1.1656213
+-0.1179500 -1.1656213
+-0.1179000 -0.7049504
+-0.1178500 -2.5476337
+-0.1178000 -3.6993108
+-0.1177500 -1.6262921
+-0.1177000 -0.7049504
+-0.1176500 -3.4689754
+-0.1176000 -1.8566275
+-0.1175500 -2.7779691
+-0.1175000 -0.9352859
+-0.1174500 -2.0869629
+-0.1174000 -0.9352859
+-0.1173500 0.6770620
+-0.1173000 -5.0813232
+-0.1172500 -1.8566275
+-0.1172000 2.9804161
+-0.1171500 -1.8566275
+-0.1171000 -1.3959567
+-0.1170500 -1.1656213
+-0.1170000 -0.0139442
+-0.1169500 -0.2442796
+-0.1169000 0.2163912
+-0.1168500 0.2163912
+-0.1168000 -0.0139442
+-0.1167500 -0.4746150
+-0.1167000 -0.9352859
+-0.1166500 -0.9352859
+-0.1166000 -1.8566275
+-0.1165500 -3.0083045
+-0.1165000 -0.2442796
+-0.1164500 0.4467266
+-0.1164000 0.4467266
+-0.1163500 1.5984037
+-0.1163000 -0.9352859
+-0.1162500 1.1377328
+-0.1162000 3.4410869
+-0.1161500 2.7500807
+-0.1161000 2.0590745
+-0.1160500 3.4410869
+-0.1160000 3.2107515
+-0.1159500 3.6714223
+-0.1159000 6.2051119
+-0.1158500 5.5141056
+-0.1158000 5.0534348
+-0.1157500 3.6714223
+-0.1157000 5.2837702
+-0.1156500 1.8287391
+-0.1156000 2.9804161
+-0.1155500 4.8230994
+-0.1155000 3.4410869
+-0.1154500 2.2894099
+-0.1154000 1.1377328
+-0.1153500 2.2894099
+-0.1153000 -0.7049504
+-0.1152500 0.9073974
+-0.1152000 1.1377328
+-0.1151500 2.7500807
+-0.1151000 2.2894099
+-0.1150500 1.8287391
+-0.1150000 3.2107515
+-0.1149500 2.2894099
+-0.1149000 0.4467266
+-0.1148500 0.6770620
+-0.1148000 0.2163912
+-0.1147500 -0.0139442
+-0.1147000 1.8287391
+-0.1146500 2.0590745
+-0.1146000 -1.8566275
+-0.1145500 1.8287391
+-0.1145000 2.2894099
+-0.1144500 -2.3172983
+-0.1144000 0.6770620
+-0.1143500 0.4467266
+-0.1143000 0.4467266
+-0.1142500 -0.9352859
+-0.1142000 0.2163912
+-0.1141500 -0.7049504
+-0.1141000 -0.7049504
+-0.1140500 -2.3172983
+-0.1140000 -1.1656213
+-0.1139500 -2.5476337
+-0.1139000 -2.5476337
+-0.1138500 -2.3172983
+-0.1138000 -4.6206524
+-0.1137500 -1.1656213
+-0.1137000 -1.6262921
+-0.1136500 -2.3172983
+-0.1136000 -1.8566275
+-0.1135500 -1.6262921
+-0.1135000 -0.4746150
+-0.1134500 -0.7049504
+-0.1134000 -4.6206524
+-0.1133500 -1.3959567
+-0.1133000 -1.1656213
+-0.1132500 -1.3959567
+-0.1132000 0.4467266
+-0.1131500 -0.9352859
+-0.1131000 -2.0869629
+-0.1130500 -1.1656213
+-0.1130000 -0.7049504
+-0.1129500 -3.6993108
+-0.1129000 2.7500807
+-0.1128500 0.4467266
+-0.1128000 -1.8566275
+-0.1127500 -1.3959567
+-0.1127000 0.4467266
+-0.1126500 1.8287391
+-0.1126000 0.2163912
+-0.1125500 -0.0139442
+-0.1125000 0.9073974
+-0.1124500 3.2107515
+-0.1124000 3.4410869
+-0.1123500 1.3680682
+-0.1123000 1.1377328
+-0.1122500 1.5984037
+-0.1122000 -0.0139442
+-0.1121500 -0.2442796
+-0.1121000 0.9073974
+-0.1120500 1.5984037
+-0.1120000 1.3680682
+-0.1119500 0.9073974
+-0.1119000 0.4467266
+-0.1118500 0.2163912
+-0.1118000 0.4467266
+-0.1117500 -2.0869629
+-0.1117000 0.2163912
+-0.1116500 -0.2442796
+-0.1116000 1.5984037
+-0.1115500 -0.0139442
+-0.1115000 1.3680682
+-0.1114500 -1.1656213
+-0.1114000 0.6770620
+-0.1113500 -1.8566275
+-0.1113000 -1.3959567
+-0.1112500 -2.0869629
+-0.1112000 2.0590745
+-0.1111500 3.4410869
+-0.1111000 0.2163912
+-0.1110500 -0.4746150
+-0.1110000 0.4467266
+-0.1109500 1.3680682
+-0.1109000 0.6770620
+-0.1108500 0.2163912
+-0.1108000 -1.1656213
+-0.1107500 -0.9352859
+-0.1107000 -0.9352859
+-0.1106500 0.9073974
+-0.1106000 -0.7049504
+-0.1105500 -3.0083045
+-0.1105000 -2.7779691
+-0.1104500 -0.4746150
+-0.1104000 -1.3959567
+-0.1103500 -2.3172983
+-0.1103000 -2.5476337
+-0.1102500 -1.6262921
+-0.1102000 -0.9352859
+-0.1101500 -0.7049504
+-0.1101000 -0.4746150
+-0.1100500 -0.2442796
+-0.1100000 -0.9352859
+-0.1099500 -0.4746150
+-0.1099000 0.6770620
+-0.1098500 -0.4746150
+-0.1098000 -0.0139442
+-0.1097500 -0.0139442
+-0.1097000 -0.0139442
+-0.1096500 1.3680682
+-0.1096000 0.2163912
+-0.1095500 -0.4746150
+-0.1095000 -1.6262921
+-0.1094500 -0.9352859
+-0.1094000 -1.1656213
+-0.1093500 -1.1656213
+-0.1093000 -0.2442796
+-0.1092500 -1.1656213
+-0.1092000 -2.3172983
+-0.1091500 -1.3959567
+-0.1091000 -1.3959567
+-0.1090500 -1.6262921
+-0.1090000 -0.7049504
+-0.1089500 -0.9352859
+-0.1089000 0.6770620
+-0.1088500 -1.6262921
+-0.1088000 0.2163912
+-0.1087500 -0.9352859
+-0.1087000 0.6770620
+-0.1086500 -1.3959567
+-0.1086000 -3.4689754
+-0.1085500 -0.7049504
+-0.1085000 -0.4746150
+-0.1084500 -2.0869629
+-0.1084000 -1.8566275
+-0.1083500 -3.2386400
+-0.1083000 -3.6993108
+-0.1082500 -4.6206524
+-0.1082000 -0.7049504
+-0.1081500 -2.5476337
+-0.1081000 -1.8566275
+-0.1080500 -1.3959567
+-0.1080000 -1.1656213
+-0.1079500 -0.4746150
+-0.1079000 -2.0869629
+-0.1078500 -1.6262921
+-0.1078000 -3.0083045
+-0.1077500 -0.7049504
+-0.1077000 -1.8566275
+-0.1076500 -2.0869629
+-0.1076000 -0.7049504
+-0.1075500 -0.9352859
+-0.1075000 -1.8566275
+-0.1074500 -1.6262921
+-0.1074000 -0.2442796
+-0.1073500 -0.0139442
+-0.1073000 -3.2386400
+-0.1072500 -3.2386400
+-0.1072000 -2.0869629
+-0.1071500 -1.8566275
+-0.1071000 -2.7779691
+-0.1070500 -5.7723295
+-0.1070000 -3.0083045
+-0.1069500 0.9073974
+-0.1069000 -0.0139442
+-0.1068500 -3.0083045
+-0.1068000 2.5197453
+-0.1067500 -0.7049504
+-0.1067000 1.3680682
+-0.1066500 -0.0139442
+-0.1066000 2.2894099
+-0.1065500 -2.0869629
+-0.1065000 -0.4746150
+-0.1064500 1.3680682
+-0.1064000 -1.6262921
+-0.1063500 2.9804161
+-0.1063000 -0.2442796
+-0.1062500 -0.2442796
+-0.1062000 0.4467266
+-0.1061500 -0.9352859
+-0.1061000 -5.0813232
+-0.1060500 -2.3172983
+-0.1060000 -3.9296462
+-0.1059500 -3.0083045
+-0.1059000 -1.8566275
+-0.1058500 0.4467266
+-0.1058000 -1.6262921
+-0.1057500 -1.8566275
+-0.1057000 1.8287391
+-0.1056500 -1.3959567
+-0.1056000 0.4467266
+-0.1055500 -2.3172983
+-0.1055000 0.2163912
+-0.1054500 0.2163912
+-0.1054000 1.8287391
+-0.1053500 0.9073974
+-0.1053000 -0.9352859
+-0.1052500 -1.3959567
+-0.1052000 -0.4746150
+-0.1051500 -2.3172983
+-0.1051000 0.2163912
+-0.1050500 -2.5476337
+-0.1050000 -0.4746150
+-0.1049500 -4.3903170
+-0.1049000 -0.9352859
+-0.1048500 -2.0869629
+-0.1048000 -4.1599816
+-0.1047500 -2.7779691
+-0.1047000 -0.4746150
+-0.1046500 -1.8566275
+-0.1046000 -0.7049504
+-0.1045500 0.2163912
+-0.1045000 0.9073974
+-0.1044500 -1.1656213
+-0.1044000 0.4467266
+-0.1043500 -1.8566275
+-0.1043000 -0.0139442
+-0.1042500 -0.0139442
+-0.1042000 -2.3172983
+-0.1041500 -0.0139442
+-0.1041000 -0.9352859
+-0.1040500 -0.0139442
+-0.1040000 -0.4746150
+-0.1039500 -1.8566275
+-0.1039000 -1.3959567
+-0.1038500 -0.4746150
+-0.1038000 -0.7049504
+-0.1037500 -0.7049504
+-0.1037000 0.2163912
+-0.1036500 -0.2442796
+-0.1036000 -0.2442796
+-0.1035500 -2.3172983
+-0.1035000 0.6770620
+-0.1034500 -0.2442796
+-0.1034000 2.0590745
+-0.1033500 -0.0139442
+-0.1033000 -1.1656213
+-0.1032500 -0.2442796
+-0.1032000 -2.5476337
+-0.1031500 -0.2442796
+-0.1031000 0.4467266
+-0.1030500 0.2163912
+-0.1030000 1.1377328
+-0.1029500 -0.2442796
+-0.1029000 0.2163912
+-0.1028500 0.4467266
+-0.1028000 -1.8566275
+-0.1027500 -1.8566275
+-0.1027000 -1.3959567
+-0.1026500 -0.2442796
+-0.1026000 -3.0083045
+-0.1025500 -2.7779691
+-0.1025000 -1.6262921
+-0.1024500 -3.2386400
+-0.1024000 -0.0139442
+-0.1023500 -2.0869629
+-0.1023000 -1.8566275
+-0.1022500 -1.3959567
+-0.1022000 -2.0869629
+-0.1021500 -3.9296462
+-0.1021000 0.2163912
+-0.1020500 -4.3903170
+-0.1020000 -3.6993108
+-0.1019500 -5.5419941
+-0.1019000 -2.3172983
+-0.1018500 -1.1656213
+-0.1018000 -3.0083045
+-0.1017500 -1.1656213
+-0.1017000 -0.7049504
+-0.1016500 -0.2442796
+-0.1016000 -1.6262921
+-0.1015500 0.4467266
+-0.1015000 -0.0139442
+-0.1014500 -0.0139442
+-0.1014000 2.0590745
+-0.1013500 0.9073974
+-0.1013000 0.4467266
+-0.1012500 -0.9352859
+-0.1012000 -1.8566275
+-0.1011500 -0.9352859
+-0.1011000 -5.3116586
+-0.1010500 -2.7779691
+-0.1010000 -3.2386400
+-0.1009500 -4.8509878
+-0.1009000 -1.6262921
+-0.1008500 -3.9296462
+-0.1008000 -3.6993108
+-0.1007500 -1.8566275
+-0.1007000 -1.8566275
+-0.1006500 -0.9352859
+-0.1006000 -1.3959567
+-0.1005500 1.3680682
+-0.1005000 3.4410869
+-0.1004500 3.9017578
+-0.1004000 3.6714223
+-0.1003500 6.8961181
+-0.1003000 4.1320932
+-0.1002500 3.9017578
+-0.1002000 3.9017578
+-0.1001500 3.4410869
+-0.1001000 2.2894099
+-0.1000500 1.3680682
+-0.1000000 2.0590745
+-0.0999500 2.9804161
+-0.0999000 0.2163912
+-0.0998500 1.1377328
+-0.0998000 1.3680682
+-0.0997500 -1.6262921
+-0.0997000 1.5984037
+-0.0996500 -0.9352859
+-0.0996000 0.9073974
+-0.0995500 3.4410869
+-0.0995000 -1.1656213
+-0.0994500 1.1377328
+-0.0994000 2.5197453
+-0.0993500 2.2894099
+-0.0993000 1.1377328
+-0.0992500 -0.0139442
+-0.0992000 -0.7049504
+-0.0991500 -2.3172983
+-0.0991000 -3.2386400
+-0.0990500 -1.8566275
+-0.0990000 -1.1656213
+-0.0989500 -2.5476337
+-0.0989000 -6.2330003
+-0.0988500 -7.1543419
+-0.0988000 -4.1599816
+-0.0987500 -6.2330003
+-0.0987000 -5.5419941
+-0.0986500 -1.6262921
+-0.0986000 -5.5419941
+-0.0985500 -3.0083045
+-0.0985000 -3.0083045
+-0.0984500 -5.0813232
+-0.0984000 -4.1599816
+-0.0983500 -2.5476337
+-0.0983000 -3.6993108
+-0.0982500 -3.0083045
+-0.0982000 -3.0083045
+-0.0981500 -3.9296462
+-0.0981000 -5.0813232
+-0.0980500 -4.6206524
+-0.0980000 -7.6150128
+-0.0979500 -1.3959567
+-0.0979000 -3.2386400
+-0.0978500 -6.4633357
+-0.0978000 -2.3172983
+-0.0977500 -7.6150128
+-0.0977000 -6.4633357
+-0.0976500 -3.6993108
+-0.0976000 -4.6206524
+-0.0975500 -1.3959567
+-0.0975000 -3.6993108
+-0.0974500 -3.9296462
+-0.0974000 -2.0869629
+-0.0973500 -4.6206524
+-0.0973000 -5.7723295
+-0.0972500 -1.1656213
+-0.0972000 -1.3959567
+-0.0971500 -1.6262921
+-0.0971000 -0.0139442
+-0.0970500 -0.2442796
+-0.0970000 1.5984037
+-0.0969500 0.4467266
+-0.0969000 -0.0139442
+-0.0968500 -2.3172983
+-0.0968000 1.8287391
+-0.0967500 2.0590745
+-0.0967000 2.2894099
+-0.0966500 2.0590745
+-0.0966000 2.0590745
+-0.0965500 3.9017578
+-0.0965000 0.4467266
+-0.0964500 0.9073974
+-0.0964000 2.5197453
+-0.0963500 1.1377328
+-0.0963000 4.1320932
+-0.0962500 2.5197453
+-0.0962000 3.6714223
+-0.0961500 -0.2442796
+-0.0961000 3.4410869
+-0.0960500 2.0590745
+-0.0960000 2.9804161
+-0.0959500 1.3680682
+-0.0959000 -0.2442796
+-0.0958500 5.7444410
+-0.0958000 4.3624286
+-0.0957500 2.0590745
+-0.0957000 2.5197453
+-0.0956500 0.2163912
+-0.0956000 2.7500807
+-0.0955500 1.3680682
+-0.0955000 -0.7049504
+-0.0954500 -52.3000823
+-0.0954000 -101.8221955
+-0.0953500 -56.2157843
+-0.0953000 -25.1205039
+-0.0952500 -48.3843804
+-0.0952000 -28.5755351
+-0.0951500 5.9747764
+-0.0951000 -30.1878829
+-0.0950500 -76.9459712
+-0.0950000 -76.2549650
+-0.0949500 -56.4461197
+-0.0949000 -191.1923347
+-0.0948500 -92.1481083
+-0.0948000 -87.7717355
+-0.0947500 -67.2718840
+-0.0947000 -96.5244811
+-0.0946500 -99.5188414
+-0.0946000 -49.0753866
+-0.0945500 -47.2327033
+-0.0945000 -75.7942942
+-0.0944500 -52.7607531
+-0.0944000 -17.0587646
+-0.0943500 -1.6262921
+-0.0943000 -24.4294977
+-0.0942500 -1.6262921
+-0.0942000 20.4859073
+-0.0941500 2.0590745
+-0.0941000 -21.4351374
+-0.0940500 10.8118201
+-0.0940000 24.4016093
+-0.0939500 -0.4746150
+-0.0939000 0.2163912
+-0.0938500 18.8735594
+-0.0938000 22.5589260
+-0.0937500 -2.7779691
+-0.0937000 9.4298076
+-0.0936500 21.8679198
+-0.0936000 -35.0249266
+-0.0935500 -4.1599816
+-0.0935000 20.4859073
+-0.0934500 33.6150257
+-0.0934000 31.3116716
+-0.0933500 14.7275220
+-0.0933000 19.5645657
+-0.0932500 21.6375843
+-0.0932000 9.6601430
+-0.0931500 -11.7610501
+-0.0931000 -5.3116586
+-0.0930500 75.3057349
+-0.0930000 -15.6767521
+-0.0929500 1.1377328
+-0.0929000 5.7444410
+-0.0928500 0.2163912
+-0.0928000 -4.8509878
+-0.0927500 -61.2831633
+-0.0927000 1.1377328
+-0.0926500 -3.6993108
+-0.0926000 -6.4633357
+-0.0925500 -6.2330003
+-0.0925000 1.5984037
+-0.0924500 -2.0869629
+-0.0924000 1.8287391
+-0.0923500 2.9804161
+-0.0923000 6.4354473
+-0.0922500 2.9804161
+-0.0922000 5.7444410
+-0.0921500 6.4354473
+-0.0921000 8.9691368
+-0.0920500 2.7500807
+-0.0920000 5.9747764
+-0.0919500 4.3624286
+-0.0919000 2.9804161
+-0.0918500 -2.0869629
+-0.0918000 -3.4689754
+-0.0917500 13.5758450
+-0.0917000 3.6714223
+-0.0916500 -5.0813232
+-0.0916000 -3.0083045
+-0.0915500 -6.6936711
+-0.0915000 -7.6150128
+-0.0914500 -11.3003793
+-0.0914000 -10.3790377
+-0.0913500 -9.9183669
+-0.0913000 -8.7666898
+-0.0912500 -16.8284292
+-0.0912000 -14.5250751
+-0.0911500 -13.3733980
+-0.0911000 -13.1430626
+-0.0910500 -12.9127272
+-0.0910000 -10.6093731
+-0.0909500 -9.6880314
+-0.0909000 -10.1487023
+-0.0908500 -6.0026649
+-0.0908000 -7.8453482
+-0.0907500 -7.6150128
+-0.0907000 -7.6150128
+-0.0906500 -3.9296462
+-0.0906000 -2.7779691
+-0.0905500 -2.5476337
+-0.0905000 -4.3903170
+-0.0904500 -5.0813232
+-0.0904000 -6.0026649
+-0.0903500 -3.2386400
+-0.0903000 -0.7049504
+-0.0902500 2.0590745
+-0.0902000 2.9804161
+-0.0901500 0.2163912
+-0.0901000 2.5197453
+-0.0900500 2.2894099
+-0.0900000 4.3624286
+-0.0899500 3.6714223
+-0.0899000 4.3624286
+-0.0898500 3.9017578
+-0.0898000 5.0534348
+-0.0897500 3.6714223
+-0.0897000 3.2107515
+-0.0896500 1.8287391
+-0.0896000 4.1320932
+-0.0895500 3.9017578
+-0.0895000 3.2107515
+-0.0894500 2.2894099
+-0.0894000 2.5197453
+-0.0893500 0.2163912
+-0.0893000 0.6770620
+-0.0892500 2.9804161
+-0.0892000 -0.2442796
+-0.0891500 -0.9352859
+-0.0891000 -0.4746150
+-0.0890500 1.8287391
+-0.0890000 -0.0139442
+-0.0889500 1.3680682
+-0.0889000 -0.7049504
+-0.0888500 0.9073974
+-0.0888000 -1.6262921
+-0.0887500 1.8287391
+-0.0887000 -0.0139442
+-0.0886500 0.6770620
+-0.0886000 4.5927640
+-0.0885500 1.5984037
+-0.0885000 4.5927640
+-0.0884500 3.4410869
+-0.0884000 1.5984037
+-0.0883500 1.1377328
+-0.0883000 0.4467266
+-0.0882500 -2.3172983
+-0.0882000 -0.2442796
+-0.0881500 0.4467266
+-0.0881000 0.2163912
+-0.0880500 0.6770620
+-0.0880000 -2.3172983
+-0.0879500 -1.3959567
+-0.0879000 -0.4746150
+-0.0878500 1.1377328
+-0.0878000 -2.7779691
+-0.0877500 -1.6262921
+-0.0877000 -0.0139442
+-0.0876500 -3.2386400
+-0.0876000 -2.3172983
+-0.0875500 -1.1656213
+-0.0875000 -1.8566275
+-0.0874500 0.9073974
+-0.0874000 -3.9296462
+-0.0873500 -3.4689754
+-0.0873000 -2.5476337
+-0.0872500 -3.6993108
+-0.0872000 -3.0083045
+-0.0871500 -1.6262921
+-0.0871000 -1.1656213
+-0.0870500 -4.3903170
+-0.0870000 -0.7049504
+-0.0869500 -0.2442796
+-0.0869000 -0.2442796
+-0.0868500 2.2894099
+-0.0868000 6.6657827
+-0.0867500 2.2894099
+-0.0867000 2.0590745
+-0.0866500 5.5141056
+-0.0866000 4.1320932
+-0.0865500 3.2107515
+-0.0865000 6.8961181
+-0.0864500 3.9017578
+-0.0864000 3.2107515
+-0.0863500 3.2107515
+-0.0863000 4.3624286
+-0.0862500 2.5197453
+-0.0862000 1.5984037
+-0.0861500 5.5141056
+-0.0861000 2.5197453
+-0.0860500 1.8287391
+-0.0860000 1.5984037
+-0.0859500 4.1320932
+-0.0859000 0.2163912
+-0.0858500 2.5197453
+-0.0858000 1.1377328
+-0.0857500 6.6657827
+-0.0857000 4.5927640
+-0.0856500 4.1320932
+-0.0856000 3.6714223
+-0.0855500 3.2107515
+-0.0855000 5.0534348
+-0.0854500 3.4410869
+-0.0854000 1.1377328
+-0.0853500 -0.4746150
+-0.0853000 1.1377328
+-0.0852500 2.7500807
+-0.0852000 3.9017578
+-0.0851500 -0.2442796
+-0.0851000 1.3680682
+-0.0850500 -3.4689754
+-0.0850000 -1.1656213
+-0.0849500 -2.5476337
+-0.0849000 -0.9352859
+-0.0848500 -1.3959567
+-0.0848000 -1.3959567
+-0.0847500 -0.2442796
+-0.0847000 -1.3959567
+-0.0846500 2.7500807
+-0.0846000 5.0534348
+-0.0845500 5.0534348
+-0.0845000 4.8230994
+-0.0844500 5.5141056
+-0.0844000 5.5141056
+-0.0843500 4.8230994
+-0.0843000 4.5927640
+-0.0842500 5.0534348
+-0.0842000 8.0477951
+-0.0841500 6.2051119
+-0.0841000 4.1320932
+-0.0840500 3.6714223
+-0.0840000 4.8230994
+-0.0839500 3.4410869
+-0.0839000 5.5141056
+-0.0838500 3.2107515
+-0.0838000 2.5197453
+-0.0837500 2.5197453
+-0.0837000 1.5984037
+-0.0836500 2.2894099
+-0.0836000 2.2894099
+-0.0835500 3.2107515
+-0.0835000 4.5927640
+-0.0834500 5.5141056
+-0.0834000 5.9747764
+-0.0833500 5.9747764
+-0.0833000 5.9747764
+-0.0832500 7.1264535
+-0.0832000 3.6714223
+-0.0831500 4.5927640
+-0.0831000 -0.2442796
+-0.0830500 0.9073974
+-0.0830000 2.0590745
+-0.0829500 1.1377328
+-0.0829000 2.0590745
+-0.0828500 -0.0139442
+-0.0828000 -0.0139442
+-0.0827500 1.5984037
+-0.0827000 -0.9352859
+-0.0826500 1.5984037
+-0.0826000 -1.3959567
+-0.0825500 1.1377328
+-0.0825000 1.1377328
+-0.0824500 0.4467266
+-0.0824000 1.5984037
+-0.0823500 -1.8566275
+-0.0823000 2.9804161
+-0.0822500 2.9804161
+-0.0822000 5.9747764
+-0.0821500 1.3680682
+-0.0821000 4.3624286
+-0.0820500 5.2837702
+-0.0820000 3.2107515
+-0.0819500 4.5927640
+-0.0819000 7.8174597
+-0.0818500 4.1320932
+-0.0818000 7.8174597
+-0.0817500 3.6714223
+-0.0817000 6.8961181
+-0.0816500 7.5871243
+-0.0816000 2.9804161
+-0.0815500 4.3624286
+-0.0815000 4.8230994
+-0.0814500 4.3624286
+-0.0814000 7.3567889
+-0.0813500 6.6657827
+-0.0813000 5.7444410
+-0.0812500 7.1264535
+-0.0812000 6.8961181
+-0.0811500 6.6657827
+-0.0811000 6.8961181
+-0.0810500 5.2837702
+-0.0810000 6.4354473
+-0.0809500 5.5141056
+-0.0809000 5.5141056
+-0.0808500 3.4410869
+-0.0808000 4.3624286
+-0.0807500 3.6714223
+-0.0807000 5.5141056
+-0.0806500 3.6714223
+-0.0806000 4.1320932
+-0.0805500 5.7444410
+-0.0805000 2.0590745
+-0.0804500 5.7444410
+-0.0804000 5.2837702
+-0.0803500 5.9747764
+-0.0803000 5.5141056
+-0.0802500 4.5927640
+-0.0802000 3.6714223
+-0.0801500 4.3624286
+-0.0801000 4.1320932
+-0.0800500 5.2837702
+-0.0800000 3.6714223
+-0.0799500 4.1320932
+-0.0799000 -0.0139442
+-0.0798500 4.5927640
+-0.0798000 2.5197453
+-0.0797500 2.5197453
+-0.0797000 2.5197453
+-0.0796500 3.9017578
+-0.0796000 3.2107515
+-0.0795500 2.2894099
+-0.0795000 5.0534348
+-0.0794500 2.5197453
+-0.0794000 1.1377328
+-0.0793500 4.3624286
+-0.0793000 1.5984037
+-0.0792500 3.9017578
+-0.0792000 4.3624286
+-0.0791500 2.7500807
+-0.0791000 3.2107515
+-0.0790500 2.2894099
+-0.0790000 2.5197453
+-0.0789500 3.9017578
+-0.0789000 2.7500807
+-0.0788500 3.2107515
+-0.0788000 2.2894099
+-0.0787500 2.9804161
+-0.0787000 6.2051119
+-0.0786500 2.0590745
+-0.0786000 4.3624286
+-0.0785500 1.5984037
+-0.0785000 3.2107515
+-0.0784500 3.4410869
+-0.0784000 3.4410869
+-0.0783500 4.1320932
+-0.0783000 3.9017578
+-0.0782500 4.8230994
+-0.0782000 2.0590745
+-0.0781500 3.6714223
+-0.0781000 3.6714223
+-0.0780500 3.2107515
+-0.0780000 15.8791991
+-0.0779500 6.8961181
+-0.0779000 3.6714223
+-0.0778500 2.9804161
+-0.0778000 1.8287391
+-0.0777500 1.3680682
+-0.0777000 3.6714223
+-0.0776500 2.0590745
+-0.0776000 3.2107515
+-0.0775500 3.2107515
+-0.0775000 6.4354473
+-0.0774500 7.1264535
+-0.0774000 7.8174597
+-0.0773500 2.2894099
+-0.0773000 7.8174597
+-0.0772500 6.8961181
+-0.0772000 6.2051119
+-0.0771500 4.1320932
+-0.0771000 5.5141056
+-0.0770500 5.9747764
+-0.0770000 4.5927640
+-0.0769500 2.7500807
+-0.0769000 6.6657827
+-0.0768500 3.4410869
+-0.0768000 5.2837702
+-0.0767500 7.8174597
+-0.0767000 5.9747764
+-0.0766500 7.8174597
+-0.0766000 6.4354473
+-0.0765500 8.0477951
+-0.0765000 9.6601430
+-0.0764500 7.8174597
+-0.0764000 7.3567889
+-0.0763500 8.2781306
+-0.0763000 8.0477951
+-0.0762500 7.1264535
+-0.0762000 5.5141056
+-0.0761500 8.5084660
+-0.0761000 8.7388014
+-0.0760500 4.3624286
+-0.0760000 3.4410869
+-0.0759500 3.2107515
+-0.0759000 1.8287391
+-0.0758500 2.5197453
+-0.0758000 0.9073974
+-0.0757500 1.8287391
+-0.0757000 2.5197453
+-0.0756500 2.0590745
+-0.0756000 2.7500807
+-0.0755500 0.9073974
+-0.0755000 1.5984037
+-0.0754500 4.1320932
+-0.0754000 -0.0139442
+-0.0753500 4.3624286
+-0.0753000 4.3624286
+-0.0752500 1.8287391
+-0.0752000 1.5984037
+-0.0751500 2.2894099
+-0.0751000 5.0534348
+-0.0750500 3.9017578
+-0.0750000 5.9747764
+-0.0749500 6.2051119
+-0.0749000 2.5197453
+-0.0748500 1.8287391
+-0.0748000 2.5197453
+-0.0747500 2.7500807
+-0.0747000 1.8287391
+-0.0746500 1.1377328
+-0.0746000 2.0590745
+-0.0745500 3.4410869
+-0.0745000 4.5927640
+-0.0744500 1.1377328
+-0.0744000 2.0590745
+-0.0743500 2.9804161
+-0.0743000 2.7500807
+-0.0742500 3.9017578
+-0.0742000 1.5984037
+-0.0741500 3.9017578
+-0.0741000 1.8287391
+-0.0740500 2.7500807
+-0.0740000 0.2163912
+-0.0739500 -1.1656213
+-0.0739000 2.9804161
+-0.0738500 -0.2442796
+-0.0738000 1.5984037
+-0.0737500 5.7444410
+-0.0737000 2.2894099
+-0.0736500 1.5984037
+-0.0736000 3.9017578
+-0.0735500 0.6770620
+-0.0735000 0.4467266
+-0.0734500 4.8230994
+-0.0734000 4.5927640
+-0.0733500 3.4410869
+-0.0733000 2.2894099
+-0.0732500 3.2107515
+-0.0732000 2.5197453
+-0.0731500 3.9017578
+-0.0731000 3.2107515
+-0.0730500 5.0534348
+-0.0730000 4.3624286
+-0.0729500 5.9747764
+-0.0729000 6.2051119
+-0.0728500 2.0590745
+-0.0728000 4.3624286
+-0.0727500 6.4354473
+-0.0727000 5.0534348
+-0.0726500 6.4354473
+-0.0726000 7.1264535
+-0.0725500 4.3624286
+-0.0725000 5.5141056
+-0.0724500 4.3624286
+-0.0724000 4.1320932
+-0.0723500 6.2051119
+-0.0723000 2.9804161
+-0.0722500 4.3624286
+-0.0722000 5.0534348
+-0.0721500 4.8230994
+-0.0721000 2.7500807
+-0.0720500 4.5927640
+-0.0720000 3.4410869
+-0.0719500 3.2107515
+-0.0719000 2.5197453
+-0.0718500 2.7500807
+-0.0718000 2.5197453
+-0.0717500 3.2107515
+-0.0717000 1.3680682
+-0.0716500 -0.0139442
+-0.0716000 -0.2442796
+-0.0715500 1.8287391
+-0.0715000 1.5984037
+-0.0714500 -2.0869629
+-0.0714000 -1.6262921
+-0.0713500 -0.4746150
+-0.0713000 -1.6262921
+-0.0712500 -0.0139442
+-0.0712000 0.2163912
+-0.0711500 0.2163912
+-0.0711000 -1.8566275
+-0.0710500 0.4467266
+-0.0710000 0.4467266
+-0.0709500 1.1377328
+-0.0709000 0.6770620
+-0.0708500 -3.0083045
+-0.0708000 -0.7049504
+-0.0707500 -1.8566275
+-0.0707000 -0.9352859
+-0.0706500 1.1377328
+-0.0706000 3.9017578
+-0.0705500 1.8287391
+-0.0705000 1.8287391
+-0.0704500 3.6714223
+-0.0704000 2.2894099
+-0.0703500 3.6714223
+-0.0703000 -0.2442796
+-0.0702500 0.6770620
+-0.0702000 3.6714223
+-0.0701500 2.7500807
+-0.0701000 3.2107515
+-0.0700500 2.9804161
+-0.0700000 4.1320932
+-0.0699500 3.6714223
+-0.0699000 1.3680682
+-0.0698500 3.2107515
+-0.0698000 4.3624286
+-0.0697500 2.7500807
+-0.0697000 -0.0139442
+-0.0696500 2.9804161
+-0.0696000 0.6770620
+-0.0695500 1.8287391
+-0.0695000 1.8287391
+-0.0694500 0.2163912
+-0.0694000 3.2107515
+-0.0693500 1.3680682
+-0.0693000 4.1320932
+-0.0692500 3.9017578
+-0.0692000 2.5197453
+-0.0691500 2.2894099
+-0.0691000 2.9804161
+-0.0690500 4.3624286
+-0.0690000 3.6714223
+-0.0689500 1.3680682
+-0.0689000 1.5984037
+-0.0688500 -0.2442796
+-0.0688000 1.1377328
+-0.0687500 1.3680682
+-0.0687000 -0.4746150
+-0.0686500 0.4467266
+-0.0686000 -0.4746150
+-0.0685500 0.4467266
+-0.0685000 0.4467266
+-0.0684500 -1.8566275
+-0.0684000 3.4410869
+-0.0683500 -0.0139442
+-0.0683000 2.7500807
+-0.0682500 3.6714223
+-0.0682000 3.6714223
+-0.0681500 4.8230994
+-0.0681000 1.5984037
+-0.0680500 3.2107515
+-0.0680000 3.9017578
+-0.0679500 2.5197453
+-0.0679000 4.8230994
+-0.0678500 2.7500807
+-0.0678000 3.4410869
+-0.0677500 -0.0139442
+-0.0677000 1.5984037
+-0.0676500 -1.8566275
+-0.0676000 1.8287391
+-0.0675500 0.4467266
+-0.0675000 2.0590745
+-0.0674500 2.5197453
+-0.0674000 -0.2442796
+-0.0673500 -0.0139442
+-0.0673000 5.0534348
+-0.0672500 1.3680682
+-0.0672000 0.4467266
+-0.0671500 0.9073974
+-0.0671000 3.6714223
+-0.0670500 2.9804161
+-0.0670000 1.3680682
+-0.0669500 2.0590745
+-0.0669000 1.8287391
+-0.0668500 1.5984037
+-0.0668000 0.9073974
+-0.0667500 -0.2442796
+-0.0667000 0.2163912
+-0.0666500 2.7500807
+-0.0666000 1.8287391
+-0.0665500 1.8287391
+-0.0665000 -0.4746150
+-0.0664500 2.7500807
+-0.0664000 0.4467266
+-0.0663500 0.6770620
+-0.0663000 -0.9352859
+-0.0662500 3.2107515
+-0.0662000 5.0534348
+-0.0661500 2.2894099
+-0.0661000 4.3624286
+-0.0660500 5.0534348
+-0.0660000 3.6714223
+-0.0659500 4.8230994
+-0.0659000 2.9804161
+-0.0658500 4.5927640
+-0.0658000 2.0590745
+-0.0657500 3.9017578
+-0.0657000 2.0590745
+-0.0656500 3.6714223
+-0.0656000 4.5927640
+-0.0655500 2.7500807
+-0.0655000 1.8287391
+-0.0654500 2.7500807
+-0.0654000 1.3680682
+-0.0653500 2.5197453
+-0.0653000 0.9073974
+-0.0652500 0.2163912
+-0.0652000 -0.4746150
+-0.0651500 -0.0139442
+-0.0651000 -0.7049504
+-0.0650500 1.1377328
+-0.0650000 1.3680682
+-0.0649500 1.5984037
+-0.0649000 3.4410869
+-0.0648500 -0.9352859
+-0.0648000 -0.0139442
+-0.0647500 0.9073974
+-0.0647000 2.5197453
+-0.0646500 2.2894099
+-0.0646000 4.8230994
+-0.0645500 5.2837702
+-0.0645000 2.9804161
+-0.0644500 2.9804161
+-0.0644000 1.5984037
+-0.0643500 0.4467266
+-0.0643000 -1.6262921
+-0.0642500 1.5984037
+-0.0642000 -0.4746150
+-0.0641500 -0.9352859
+-0.0641000 0.2163912
+-0.0640500 0.4467266
+-0.0640000 -0.4746150
+-0.0639500 -0.7049504
+-0.0639000 0.2163912
+-0.0638500 2.9804161
+-0.0638000 1.1377328
+-0.0637500 0.6770620
+-0.0637000 2.0590745
+-0.0636500 2.9804161
+-0.0636000 2.5197453
+-0.0635500 2.5197453
+-0.0635000 5.0534348
+-0.0634500 7.1264535
+-0.0634000 5.9747764
+-0.0633500 5.0534348
+-0.0633000 2.2894099
+-0.0632500 2.5197453
+-0.0632000 3.9017578
+-0.0631500 3.9017578
+-0.0631000 2.5197453
+-0.0630500 3.9017578
+-0.0630000 0.9073974
+-0.0629500 2.9804161
+-0.0629000 3.2107515
+-0.0628500 3.2107515
+-0.0628000 1.1377328
+-0.0627500 0.2163912
+-0.0627000 2.7500807
+-0.0626500 1.1377328
+-0.0626000 1.5984037
+-0.0625500 1.3680682
+-0.0625000 0.6770620
+-0.0624500 1.3680682
+-0.0624000 0.2163912
+-0.0623500 -1.3959567
+-0.0623000 -0.0139442
+-0.0622500 1.5984037
+-0.0622000 -0.0139442
+-0.0621500 -0.0139442
+-0.0621000 -0.2442796
+-0.0620500 0.4467266
+-0.0620000 -1.8566275
+-0.0619500 -0.7049504
+-0.0619000 -0.4746150
+-0.0618500 0.4467266
+-0.0618000 7.8174597
+-0.0617500 2.9804161
+-0.0617000 2.7500807
+-0.0616500 -0.0139442
+-0.0616000 1.3680682
+-0.0615500 1.1377328
+-0.0615000 0.6770620
+-0.0614500 -0.0139442
+-0.0614000 1.5984037
+-0.0613500 -2.0869629
+-0.0613000 3.9017578
+-0.0612500 2.5197453
+-0.0612000 2.9804161
+-0.0611500 -0.0139442
+-0.0611000 -0.2442796
+-0.0610500 2.5197453
+-0.0610000 2.9804161
+-0.0609500 1.1377328
+-0.0609000 3.9017578
+-0.0608500 2.2894099
+-0.0608000 4.3624286
+-0.0607500 5.0534348
+-0.0607000 5.5141056
+-0.0606500 -0.7049504
+-0.0606000 1.5984037
+-0.0605500 2.2894099
+-0.0605000 2.0590745
+-0.0604500 4.1320932
+-0.0604000 7.1264535
+-0.0603500 3.4410869
+-0.0603000 3.9017578
+-0.0602500 4.3624286
+-0.0602000 5.7444410
+-0.0601500 4.3624286
+-0.0601000 5.2837702
+-0.0600500 4.1320932
+-0.0600000 3.4410869
+-0.0599500 2.7500807
+-0.0599000 0.6770620
+-0.0598500 0.9073974
+-0.0598000 -0.0139442
+-0.0597500 1.3680682
+-0.0597000 -0.2442796
+-0.0596500 1.8287391
+-0.0596000 1.8287391
+-0.0595500 2.2894099
+-0.0595000 1.1377328
+-0.0594500 3.2107515
+-0.0594000 0.4467266
+-0.0593500 1.3680682
+-0.0593000 0.6770620
+-0.0592500 1.8287391
+-0.0592000 0.4467266
+-0.0591500 2.0590745
+-0.0591000 1.5984037
+-0.0590500 1.8287391
+-0.0590000 2.2894099
+-0.0589500 1.8287391
+-0.0589000 2.9804161
+-0.0588500 4.1320932
+-0.0588000 2.5197453
+-0.0587500 1.8287391
+-0.0587000 3.4410869
+-0.0586500 0.6770620
+-0.0586000 0.9073974
+-0.0585500 1.5984037
+-0.0585000 2.9804161
+-0.0584500 4.1320932
+-0.0584000 3.2107515
+-0.0583500 1.8287391
+-0.0583000 2.2894099
+-0.0582500 0.2163912
+-0.0582000 3.4410869
+-0.0581500 5.7444410
+-0.0581000 4.1320932
+-0.0580500 1.3680682
+-0.0580000 3.6714223
+-0.0579500 4.1320932
+-0.0579000 2.7500807
+-0.0578500 4.1320932
+-0.0578000 2.0590745
+-0.0577500 6.4354473
+-0.0577000 3.9017578
+-0.0576500 3.9017578
+-0.0576000 6.2051119
+-0.0575500 3.6714223
+-0.0575000 2.9804161
+-0.0574500 5.7444410
+-0.0574000 5.9747764
+-0.0573500 5.0534348
+-0.0573000 3.2107515
+-0.0572500 2.9804161
+-0.0572000 4.5927640
+-0.0571500 8.2781306
+-0.0571000 1.3680682
+-0.0570500 6.4354473
+-0.0570000 2.9804161
+-0.0569500 3.9017578
+-0.0569000 6.2051119
+-0.0568500 5.5141056
+-0.0568000 5.2837702
+-0.0567500 6.6657827
+-0.0567000 4.1320932
+-0.0566500 7.5871243
+-0.0566000 5.7444410
+-0.0565500 6.8961181
+-0.0565000 3.6714223
+-0.0564500 4.8230994
+-0.0564000 6.4354473
+-0.0563500 5.7444410
+-0.0563000 5.7444410
+-0.0562500 6.6657827
+-0.0562000 6.6657827
+-0.0561500 1.3680682
+-0.0561000 4.1320932
+-0.0560500 0.6770620
+-0.0560000 2.5197453
+-0.0559500 -1.6262921
+-0.0559000 0.2163912
+-0.0558500 0.2163912
+-0.0558000 -1.8566275
+-0.0557500 -0.0139442
+-0.0557000 -2.5476337
+-0.0556500 -4.8509878
+-0.0556000 -1.8566275
+-0.0555500 -1.1656213
+-0.0555000 0.6770620
+-0.0554500 0.6770620
+-0.0554000 -3.6993108
+-0.0553500 -2.5476337
+-0.0553000 -1.6262921
+-0.0552500 -0.4746150
+-0.0552000 -2.3172983
+-0.0551500 -2.5476337
+-0.0551000 0.4467266
+-0.0550500 -2.3172983
+-0.0550000 2.5197453
+-0.0549500 -0.0139442
+-0.0549000 2.2894099
+-0.0548500 2.5197453
+-0.0548000 2.0590745
+-0.0547500 1.1377328
+-0.0547000 0.6770620
+-0.0546500 0.6770620
+-0.0546000 1.5984037
+-0.0545500 2.2894099
+-0.0545000 3.4410869
+-0.0544500 1.3680682
+-0.0544000 5.2837702
+-0.0543500 4.1320932
+-0.0543000 5.0534348
+-0.0542500 2.7500807
+-0.0542000 1.1377328
+-0.0541500 0.6770620
+-0.0541000 0.9073974
+-0.0540500 1.5984037
+-0.0540000 4.5927640
+-0.0539500 3.6714223
+-0.0539000 4.8230994
+-0.0538500 5.9747764
+-0.0538000 5.9747764
+-0.0537500 5.2837702
+-0.0537000 5.5141056
+-0.0536500 3.4410869
+-0.0536000 3.9017578
+-0.0535500 2.5197453
+-0.0535000 2.7500807
+-0.0534500 7.3567889
+-0.0534000 5.2837702
+-0.0533500 4.5927640
+-0.0533000 6.2051119
+-0.0532500 4.1320932
+-0.0532000 5.5141056
+-0.0531500 4.3624286
+-0.0531000 5.7444410
+-0.0530500 4.3624286
+-0.0530000 3.4410869
+-0.0529500 2.9804161
+-0.0529000 1.3680682
+-0.0528500 2.9804161
+-0.0528000 2.0590745
+-0.0527500 2.0590745
+-0.0527000 5.7444410
+-0.0526500 2.9804161
+-0.0526000 3.2107515
+-0.0525500 -0.0139442
+-0.0525000 1.1377328
+-0.0524500 2.9804161
+-0.0524000 3.4410869
+-0.0523500 4.3624286
+-0.0523000 1.1377328
+-0.0522500 2.9804161
+-0.0522000 -0.4746150
+-0.0521500 2.5197453
+-0.0521000 -2.0869629
+-0.0520500 -1.1656213
+-0.0520000 1.3680682
+-0.0519500 1.1377328
+-0.0519000 -2.0869629
+-0.0518500 -0.9352859
+-0.0518000 -1.3959567
+-0.0517500 -0.4746150
+-0.0517000 1.5984037
+-0.0516500 -0.2442796
+-0.0516000 0.2163912
+-0.0515500 -0.0139442
+-0.0515000 0.9073974
+-0.0514500 0.6770620
+-0.0514000 0.4467266
+-0.0513500 -0.4746150
+-0.0513000 -2.7779691
+-0.0512500 1.3680682
+-0.0512000 1.3680682
+-0.0511500 4.3624286
+-0.0511000 1.1377328
+-0.0510500 2.0590745
+-0.0510000 3.6714223
+-0.0509500 -0.4746150
+-0.0509000 2.7500807
+-0.0508500 0.4467266
+-0.0508000 -0.9352859
+-0.0507500 -0.7049504
+-0.0507000 -1.8566275
+-0.0506500 -0.4746150
+-0.0506000 1.5984037
+-0.0505500 2.7500807
+-0.0505000 2.9804161
+-0.0504500 -0.0139442
+-0.0504000 2.7500807
+-0.0503500 3.6714223
+-0.0503000 2.0590745
+-0.0502500 2.7500807
+-0.0502000 4.1320932
+-0.0501500 4.3624286
+-0.0501000 3.2107515
+-0.0500500 3.9017578
+-0.0500000 2.7500807
+-0.0499500 -0.0139442
+-0.0499000 4.8230994
+-0.0498500 3.9017578
+-0.0498000 2.2894099
+-0.0497500 4.3624286
+-0.0497000 3.4410869
+-0.0496500 3.4410869
+-0.0496000 6.8961181
+-0.0495500 3.4410869
+-0.0495000 4.3624286
+-0.0494500 -0.7049504
+-0.0494000 3.6714223
+-0.0493500 7.1264535
+-0.0493000 3.4410869
+-0.0492500 11.2724909
+-0.0492000 3.6714223
+-0.0491500 2.9804161
+-0.0491000 1.1377328
+-0.0490500 3.9017578
+-0.0490000 2.5197453
+-0.0489500 2.0590745
+-0.0489000 0.2163912
+-0.0488500 -2.0869629
+-0.0488000 1.3680682
+-0.0487500 1.8287391
+-0.0487000 1.8287391
+-0.0486500 1.8287391
+-0.0486000 2.0590745
+-0.0485500 0.6770620
+-0.0485000 1.3680682
+-0.0484500 2.5197453
+-0.0484000 1.8287391
+-0.0483500 1.3680682
+-0.0483000 1.8287391
+-0.0482500 4.3624286
+-0.0482000 -0.0139442
+-0.0481500 3.6714223
+-0.0481000 1.5984037
+-0.0480500 3.2107515
+-0.0480000 2.5197453
+-0.0479500 6.2051119
+-0.0479000 2.0590745
+-0.0478500 1.5984037
+-0.0478000 -0.2442796
+-0.0477500 1.5984037
+-0.0477000 -0.9352859
+-0.0476500 -0.0139442
+-0.0476000 -2.5476337
+-0.0475500 4.3624286
+-0.0475000 1.5984037
+-0.0474500 2.2894099
+-0.0474000 3.6714223
+-0.0473500 0.9073974
+-0.0473000 5.9747764
+-0.0472500 4.1320932
+-0.0472000 4.5927640
+-0.0471500 1.1377328
+-0.0471000 6.4354473
+-0.0470500 3.4410869
+-0.0470000 5.0534348
+-0.0469500 2.0590745
+-0.0469000 3.2107515
+-0.0468500 0.6770620
+-0.0468000 -0.2442796
+-0.0467500 -0.2442796
+-0.0467000 -1.6262921
+-0.0466500 -2.0869629
+-0.0466000 0.9073974
+-0.0465500 -0.7049504
+-0.0465000 -3.0083045
+-0.0464500 -2.5476337
+-0.0464000 -4.3903170
+-0.0463500 -3.2386400
+-0.0463000 -3.2386400
+-0.0462500 -0.7049504
+-0.0462000 -0.7049504
+-0.0461500 -0.0139442
+-0.0461000 0.4467266
+-0.0460500 0.2163912
+-0.0460000 -0.2442796
+-0.0459500 -1.1656213
+-0.0459000 2.0590745
+-0.0458500 3.4410869
+-0.0458000 2.5197453
+-0.0457500 -0.4746150
+-0.0457000 -3.0083045
+-0.0456500 -3.2386400
+-0.0456000 -3.6993108
+-0.0455500 -1.6262921
+-0.0455000 -3.0083045
+-0.0454500 -3.6993108
+-0.0454000 -1.6262921
+-0.0453500 -3.9296462
+-0.0453000 -2.7779691
+-0.0452500 -0.4746150
+-0.0452000 1.8287391
+-0.0451500 0.9073974
+-0.0451000 0.9073974
+-0.0450500 0.2163912
+-0.0450000 -1.1656213
+-0.0449500 -0.7049504
+-0.0449000 -0.2442796
+-0.0448500 2.9804161
+-0.0448000 2.5197453
+-0.0447500 1.3680682
+-0.0447000 1.8287391
+-0.0446500 2.9804161
+-0.0446000 0.9073974
+-0.0445500 0.6770620
+-0.0445000 0.6770620
+-0.0444500 -2.3172983
+-0.0444000 -2.0869629
+-0.0443500 -0.4746150
+-0.0443000 -1.3959567
+-0.0442500 1.1377328
+-0.0442000 0.6770620
+-0.0441500 -0.4746150
+-0.0441000 -0.2442796
+-0.0440500 -0.9352859
+-0.0440000 -0.0139442
+-0.0439500 -0.0139442
+-0.0439000 -0.2442796
+-0.0438500 -1.1656213
+-0.0438000 1.1377328
+-0.0437500 -0.0139442
+-0.0437000 -1.1656213
+-0.0436500 -1.8566275
+-0.0436000 1.5984037
+-0.0435500 -1.6262921
+-0.0435000 -3.0083045
+-0.0434500 -1.8566275
+-0.0434000 -0.9352859
+-0.0433500 -3.0083045
+-0.0433000 -1.3959567
+-0.0432500 -1.6262921
+-0.0432000 -1.8566275
+-0.0431500 -1.3959567
+-0.0431000 -0.9352859
+-0.0430500 -1.8566275
+-0.0430000 -2.5476337
+-0.0429500 -3.0083045
+-0.0429000 -0.4746150
+-0.0428500 -0.4746150
+-0.0428000 1.1377328
+-0.0427500 -0.7049504
+-0.0427000 -0.9352859
+-0.0426500 -1.3959567
+-0.0426000 0.2163912
+-0.0425500 -1.3959567
+-0.0425000 2.0590745
+-0.0424500 -0.0139442
+-0.0424000 -0.9352859
+-0.0423500 0.2163912
+-0.0423000 1.8287391
+-0.0422500 2.2894099
+-0.0422000 3.6714223
+-0.0421500 1.3680682
+-0.0421000 0.9073974
+-0.0420500 5.5141056
+-0.0420000 2.2894099
+-0.0419500 5.0534348
+-0.0419000 2.2894099
+-0.0418500 4.3624286
+-0.0418000 2.0590745
+-0.0417500 2.5197453
+-0.0417000 -0.0139442
+-0.0416500 -2.0869629
+-0.0416000 2.9804161
+-0.0415500 -0.9352859
+-0.0415000 1.5984037
+-0.0414500 0.2163912
+-0.0414000 1.1377328
+-0.0413500 -0.4746150
+-0.0413000 -0.2442796
+-0.0412500 3.4410869
+-0.0412000 3.9017578
+-0.0411500 3.2107515
+-0.0411000 2.5197453
+-0.0410500 3.9017578
+-0.0410000 3.9017578
+-0.0409500 1.5984037
+-0.0409000 2.7500807
+-0.0408500 2.7500807
+-0.0408000 3.9017578
+-0.0407500 4.5927640
+-0.0407000 3.4410869
+-0.0406500 2.2894099
+-0.0406000 0.4467266
+-0.0405500 1.3680682
+-0.0405000 1.5984037
+-0.0404500 2.9804161
+-0.0404000 1.3680682
+-0.0403500 3.6714223
+-0.0403000 1.8287391
+-0.0402500 4.5927640
+-0.0402000 2.0590745
+-0.0401500 3.4410869
+-0.0401000 -0.2442796
+-0.0400500 3.9017578
+-0.0400000 3.9017578
+-0.0399500 5.0534348
+-0.0399000 4.1320932
+-0.0398500 2.7500807
+-0.0398000 2.5197453
+-0.0397500 1.5984037
+-0.0397000 1.3680682
+-0.0396500 1.1377328
+-0.0396000 -0.9352859
+-0.0395500 0.4467266
+-0.0395000 3.2107515
+-0.0394500 -2.0869629
+-0.0394000 -1.8566275
+-0.0393500 -0.4746150
+-0.0393000 0.9073974
+-0.0392500 -1.1656213
+-0.0392000 1.5984037
+-0.0391500 1.3680682
+-0.0391000 1.1377328
+-0.0390500 4.1320932
+-0.0390000 3.2107515
+-0.0389500 1.3680682
+-0.0389000 3.9017578
+-0.0388500 3.6714223
+-0.0388000 4.5927640
+-0.0387500 6.2051119
+-0.0387000 4.5927640
+-0.0386500 4.3624286
+-0.0386000 5.7444410
+-0.0385500 4.5927640
+-0.0385000 4.1320932
+-0.0384500 4.3624286
+-0.0384000 4.5927640
+-0.0383500 4.8230994
+-0.0383000 3.9017578
+-0.0382500 1.3680682
+-0.0382000 9.8904784
+-0.0381500 3.6714223
+-0.0381000 9.4298076
+-0.0380500 7.8174597
+-0.0380000 5.9747764
+-0.0379500 7.3567889
+-0.0379000 2.7500807
+-0.0378500 4.8230994
+-0.0378000 4.8230994
+-0.0377500 3.9017578
+-0.0377000 1.1377328
+-0.0376500 2.2894099
+-0.0376000 6.4354473
+-0.0375500 2.9804161
+-0.0375000 1.1377328
+-0.0374500 4.1320932
+-0.0374000 1.5984037
+-0.0373500 1.5984037
+-0.0373000 -0.4746150
+-0.0372500 3.2107515
+-0.0372000 3.6714223
+-0.0371500 0.9073974
+-0.0371000 0.4467266
+-0.0370500 2.5197453
+-0.0370000 0.9073974
+-0.0369500 2.2894099
+-0.0369000 1.1377328
+-0.0368500 -0.9352859
+-0.0368000 1.3680682
+-0.0367500 -0.2442796
+-0.0367000 1.1377328
+-0.0366500 -0.4746150
+-0.0366000 0.9073974
+-0.0365500 0.4467266
+-0.0365000 2.0590745
+-0.0364500 0.6770620
+-0.0364000 -0.7049504
+-0.0363500 1.5984037
+-0.0363000 -2.3172983
+-0.0362500 -1.6262921
+-0.0362000 1.8287391
+-0.0361500 0.6770620
+-0.0361000 -1.1656213
+-0.0360500 -1.1656213
+-0.0360000 2.5197453
+-0.0359500 -2.5476337
+-0.0359000 -1.6262921
+-0.0358500 0.2163912
+-0.0358000 0.4467266
+-0.0357500 4.1320932
+-0.0357000 -0.9352859
+-0.0356500 3.2107515
+-0.0356000 1.5984037
+-0.0355500 1.3680682
+-0.0355000 2.7500807
+-0.0354500 5.0534348
+-0.0354000 3.9017578
+-0.0353500 4.5927640
+-0.0353000 2.9804161
+-0.0352500 5.0534348
+-0.0352000 5.5141056
+-0.0351500 5.2837702
+-0.0351000 5.7444410
+-0.0350500 5.2837702
+-0.0350000 6.2051119
+-0.0349500 6.6657827
+-0.0349000 6.6657827
+-0.0348500 5.7444410
+-0.0348000 4.8230994
+-0.0347500 4.5927640
+-0.0347000 4.3624286
+-0.0346500 3.9017578
+-0.0346000 4.1320932
+-0.0345500 2.9804161
+-0.0345000 3.2107515
+-0.0344500 4.5927640
+-0.0344000 2.7500807
+-0.0343500 4.1320932
+-0.0343000 3.6714223
+-0.0342500 4.5927640
+-0.0342000 5.9747764
+-0.0341500 4.1320932
+-0.0341000 2.7500807
+-0.0340500 4.5927640
+-0.0340000 5.0534348
+-0.0339500 5.5141056
+-0.0339000 4.8230994
+-0.0338500 5.9747764
+-0.0338000 3.9017578
+-0.0337500 6.6657827
+-0.0337000 3.2107515
+-0.0336500 3.4410869
+-0.0336000 4.1320932
+-0.0335500 1.5984037
+-0.0335000 3.9017578
+-0.0334500 2.5197453
+-0.0334000 2.5197453
+-0.0333500 1.5984037
+-0.0333000 3.9017578
+-0.0332500 3.4410869
+-0.0332000 2.5197453
+-0.0331500 1.3680682
+-0.0331000 -0.0139442
+-0.0330500 3.4410869
+-0.0330000 2.0590745
+-0.0329500 -1.6262921
+-0.0329000 1.5984037
+-0.0328500 -0.9352859
+-0.0328000 1.8287391
+-0.0327500 -0.2442796
+-0.0327000 -1.6262921
+-0.0326500 0.4467266
+-0.0326000 0.2163912
+-0.0325500 -2.0869629
+-0.0325000 -0.2442796
+-0.0324500 -0.0139442
+-0.0324000 -0.0139442
+-0.0323500 1.1377328
+-0.0323000 2.0590745
+-0.0322500 0.9073974
+-0.0322000 -0.0139442
+-0.0321500 1.1377328
+-0.0321000 1.8287391
+-0.0320500 2.7500807
+-0.0320000 2.2894099
+-0.0319500 1.5984037
+-0.0319000 1.8287391
+-0.0318500 2.7500807
+-0.0318000 2.5197453
+-0.0317500 3.6714223
+-0.0317000 2.9804161
+-0.0316500 4.1320932
+-0.0316000 5.0534348
+-0.0315500 3.9017578
+-0.0315000 5.9747764
+-0.0314500 3.9017578
+-0.0314000 6.8961181
+-0.0313500 7.1264535
+-0.0313000 5.0534348
+-0.0312500 5.2837702
+-0.0312000 5.2837702
+-0.0311500 7.5871243
+-0.0311000 6.6657827
+-0.0310500 2.9804161
+-0.0310000 2.9804161
+-0.0309500 3.9017578
+-0.0309000 1.5984037
+-0.0308500 2.0590745
+-0.0308000 3.4410869
+-0.0307500 2.9804161
+-0.0307000 2.2894099
+-0.0306500 3.9017578
+-0.0306000 4.1320932
+-0.0305500 3.2107515
+-0.0305000 2.2894099
+-0.0304500 2.2894099
+-0.0304000 1.8287391
+-0.0303500 0.9073974
+-0.0303000 -0.2442796
+-0.0302500 4.1320932
+-0.0302000 1.1377328
+-0.0301500 0.6770620
+-0.0301000 1.8287391
+-0.0300500 1.8287391
+-0.0300000 -0.4746150
+-0.0299500 0.9073974
+-0.0299000 -1.6262921
+-0.0298500 0.2163912
+-0.0298000 1.1377328
+-0.0297500 2.7500807
+-0.0297000 0.9073974
+-0.0296500 1.3680682
+-0.0296000 1.1377328
+-0.0295500 2.9804161
+-0.0295000 2.2894099
+-0.0294500 4.3624286
+-0.0294000 4.5927640
+-0.0293500 0.4467266
+-0.0293000 4.3624286
+-0.0292500 1.5984037
+-0.0292000 5.5141056
+-0.0291500 5.2837702
+-0.0291000 2.2894099
+-0.0290500 5.9747764
+-0.0290000 5.0534348
+-0.0289500 3.6714223
+-0.0289000 3.9017578
+-0.0288500 2.2894099
+-0.0288000 2.0590745
+-0.0287500 3.9017578
+-0.0287000 3.2107515
+-0.0286500 2.0590745
+-0.0286000 3.9017578
+-0.0285500 1.8287391
+-0.0285000 4.3624286
+-0.0284500 1.3680682
+-0.0284000 4.8230994
+-0.0283500 2.7500807
+-0.0283000 4.3624286
+-0.0282500 1.3680682
+-0.0282000 -1.1656213
+-0.0281500 1.3680682
+-0.0281000 3.9017578
+-0.0280500 1.1377328
+-0.0280000 2.9804161
+-0.0279500 0.4467266
+-0.0279000 -1.3959567
+-0.0278500 -0.0139442
+-0.0278000 2.0590745
+-0.0277500 0.9073974
+-0.0277000 0.2163912
+-0.0276500 -0.4746150
+-0.0276000 -1.8566275
+-0.0275500 -0.7049504
+-0.0275000 -0.4746150
+-0.0274500 2.9804161
+-0.0274000 -1.1656213
+-0.0273500 -1.8566275
+-0.0273000 2.0590745
+-0.0272500 -0.0139442
+-0.0272000 1.8287391
+-0.0271500 -0.4746150
+-0.0271000 -1.1656213
+-0.0270500 0.6770620
+-0.0270000 -1.8566275
+-0.0269500 -1.1656213
+-0.0269000 0.6770620
+-0.0268500 -3.2386400
+-0.0268000 -0.2442796
+-0.0267500 -0.0139442
+-0.0267000 -0.7049504
+-0.0266500 -3.6993108
+-0.0266000 -2.3172983
+-0.0265500 -2.7779691
+-0.0265000 -1.8566275
+-0.0264500 0.4467266
+-0.0264000 -1.1656213
+-0.0263500 2.0590745
+-0.0263000 0.9073974
+-0.0262500 2.0590745
+-0.0262000 2.9804161
+-0.0261500 2.7500807
+-0.0261000 3.6714223
+-0.0260500 3.2107515
+-0.0260000 2.9804161
+-0.0259500 3.6714223
+-0.0259000 2.5197453
+-0.0258500 2.5197453
+-0.0258000 0.9073974
+-0.0257500 2.9804161
+-0.0257000 2.9804161
+-0.0256500 2.2894099
+-0.0256000 1.3680682
+-0.0255500 -0.9352859
+-0.0255000 -1.3959567
+-0.0254500 -0.4746150
+-0.0254000 -0.4746150
+-0.0253500 -1.6262921
+-0.0253000 0.2163912
+-0.0252500 0.4467266
+-0.0252000 -0.0139442
+-0.0251500 0.4467266
+-0.0251000 0.6770620
+-0.0250500 -0.4746150
+-0.0250000 -0.4746150
+-0.0249500 1.1377328
+-0.0249000 2.7500807
+-0.0248500 1.8287391
+-0.0248000 6.6657827
+-0.0247500 4.5927640
+-0.0247000 8.0477951
+-0.0246500 3.6714223
+-0.0246000 0.2163912
+-0.0245500 2.5197453
+-0.0245000 1.8287391
+-0.0244500 2.0590745
+-0.0244000 2.7500807
+-0.0243500 0.6770620
+-0.0243000 1.1377328
+-0.0242500 0.6770620
+-0.0242000 0.4467266
+-0.0241500 -0.9352859
+-0.0241000 0.9073974
+-0.0240500 -0.7049504
+-0.0240000 2.5197453
+-0.0239500 1.1377328
+-0.0239000 1.1377328
+-0.0238500 0.6770620
+-0.0238000 1.1377328
+-0.0237500 0.4467266
+-0.0237000 -0.2442796
+-0.0236500 2.9804161
+-0.0236000 -1.1656213
+-0.0235500 1.5984037
+-0.0235000 0.4467266
+-0.0234500 1.5984037
+-0.0234000 1.8287391
+-0.0233500 0.2163912
+-0.0233000 -0.2442796
+-0.0232500 -2.5476337
+-0.0232000 -0.0139442
+-0.0231500 -0.4746150
+-0.0231000 2.5197453
+-0.0230500 3.2107515
+-0.0230000 1.8287391
+-0.0229500 1.8287391
+-0.0229000 3.4410869
+-0.0228500 -0.2442796
+-0.0228000 -0.7049504
+-0.0227500 0.9073974
+-0.0227000 1.3680682
+-0.0226500 2.7500807
+-0.0226000 3.9017578
+-0.0225500 4.3624286
+-0.0225000 4.1320932
+-0.0224500 5.0534348
+-0.0224000 5.7444410
+-0.0223500 4.5927640
+-0.0223000 4.1320932
+-0.0222500 4.1320932
+-0.0222000 3.4410869
+-0.0221500 3.9017578
+-0.0221000 2.9804161
+-0.0220500 3.2107515
+-0.0220000 3.2107515
+-0.0219500 2.7500807
+-0.0219000 4.3624286
+-0.0218500 4.5927640
+-0.0218000 2.5197453
+-0.0217500 3.2107515
+-0.0217000 4.1320932
+-0.0216500 2.9804161
+-0.0216000 3.2107515
+-0.0215500 3.4410869
+-0.0215000 1.8287391
+-0.0214500 2.7500807
+-0.0214000 3.2107515
+-0.0213500 1.3680682
+-0.0213000 1.3680682
+-0.0212500 2.2894099
+-0.0212000 1.1377328
+-0.0211500 -1.3959567
+-0.0211000 2.0590745
+-0.0210500 0.4467266
+-0.0210000 1.3680682
+-0.0209500 1.5984037
+-0.0209000 4.5927640
+-0.0208500 2.5197453
+-0.0208000 2.2894099
+-0.0207500 3.4410869
+-0.0207000 3.6714223
+-0.0206500 0.2163912
+-0.0206000 0.4467266
+-0.0205500 0.9073974
+-0.0205000 -1.8566275
+-0.0204500 -1.3959567
+-0.0204000 2.2894099
+-0.0203500 -1.1656213
+-0.0203000 0.2163912
+-0.0202500 -0.7049504
+-0.0202000 -0.0139442
+-0.0201500 2.5197453
+-0.0201000 0.6770620
+-0.0200500 1.8287391
+-0.0200000 3.6714223
+-0.0199500 1.5984037
+-0.0199000 3.6714223
+-0.0198500 5.0534348
+-0.0198000 2.5197453
+-0.0197500 2.2894099
+-0.0197000 5.0534348
+-0.0196500 5.0534348
+-0.0196000 4.5927640
+-0.0195500 4.1320932
+-0.0195000 3.2107515
+-0.0194500 5.7444410
+-0.0194000 5.2837702
+-0.0193500 3.2107515
+-0.0193000 4.3624286
+-0.0192500 4.5927640
+-0.0192000 6.4354473
+-0.0191500 5.5141056
+-0.0191000 3.6714223
+-0.0190500 2.7500807
+-0.0190000 4.8230994
+-0.0189500 5.7444410
+-0.0189000 4.8230994
+-0.0188500 3.2107515
+-0.0188000 3.6714223
+-0.0187500 3.9017578
+-0.0187000 5.0534348
+-0.0186500 4.3624286
+-0.0186000 4.5927640
+-0.0185500 5.2837702
+-0.0185000 5.0534348
+-0.0184500 4.1320932
+-0.0184000 6.6657827
+-0.0183500 3.9017578
+-0.0183000 4.3624286
+-0.0182500 2.5197453
+-0.0182000 3.4410869
+-0.0181500 1.8287391
+-0.0181000 4.1320932
+-0.0180500 3.2107515
+-0.0180000 3.6714223
+-0.0179500 2.7500807
+-0.0179000 4.3624286
+-0.0178500 1.5984037
+-0.0178000 2.0590745
+-0.0177500 2.2894099
+-0.0177000 2.0590745
+-0.0176500 4.1320932
+-0.0176000 5.7444410
+-0.0175500 2.2894099
+-0.0175000 2.5197453
+-0.0174500 3.9017578
+-0.0174000 4.8230994
+-0.0173500 3.4410869
+-0.0173000 0.4467266
+-0.0172500 0.4467266
+-0.0172000 0.9073974
+-0.0171500 1.1377328
+-0.0171000 -0.0139442
+-0.0170500 1.3680682
+-0.0170000 -2.5476337
+-0.0169500 0.9073974
+-0.0169000 0.2163912
+-0.0168500 2.2894099
+-0.0168000 2.9804161
+-0.0167500 0.6770620
+-0.0167000 2.0590745
+-0.0166500 -0.7049504
+-0.0166000 3.9017578
+-0.0165500 1.8287391
+-0.0165000 1.3680682
+-0.0164500 2.7500807
+-0.0164000 -0.0139442
+-0.0163500 1.5984037
+-0.0163000 2.2894099
+-0.0162500 -0.7049504
+-0.0162000 1.3680682
+-0.0161500 0.9073974
+-0.0161000 2.0590745
+-0.0160500 2.0590745
+-0.0160000 1.3680682
+-0.0159500 -0.0139442
+-0.0159000 2.2894099
+-0.0158500 3.2107515
+-0.0158000 5.2837702
+-0.0157500 4.8230994
+-0.0157000 3.9017578
+-0.0156500 4.5927640
+-0.0156000 6.4354473
+-0.0155500 7.3567889
+-0.0155000 7.1264535
+-0.0154500 7.5871243
+-0.0154000 8.7388014
+-0.0153500 6.8961181
+-0.0153000 4.5927640
+-0.0152500 8.5084660
+-0.0152000 7.8174597
+-0.0151500 9.6601430
+-0.0151000 6.6657827
+-0.0150500 7.3567889
+-0.0150000 5.7444410
+-0.0149500 7.8174597
+-0.0149000 5.7444410
+-0.0148500 5.9747764
+-0.0148000 6.4354473
+-0.0147500 6.4354473
+-0.0147000 6.6657827
+-0.0146500 2.7500807
+-0.0146000 3.4410869
+-0.0145500 4.5927640
+-0.0145000 2.7500807
+-0.0144500 3.4410869
+-0.0144000 2.0590745
+-0.0143500 3.6714223
+-0.0143000 3.2107515
+-0.0142500 0.6770620
+-0.0142000 5.5141056
+-0.0141500 2.9804161
+-0.0141000 2.9804161
+-0.0140500 2.2894099
+-0.0140000 1.8287391
+-0.0139500 1.1377328
+-0.0139000 3.2107515
+-0.0138500 1.8287391
+-0.0138000 3.2107515
+-0.0137500 1.5984037
+-0.0137000 2.0590745
+-0.0136500 0.6770620
+-0.0136000 2.0590745
+-0.0135500 2.2894099
+-0.0135000 2.9804161
+-0.0134500 1.3680682
+-0.0134000 3.4410869
+-0.0133500 0.6770620
+-0.0133000 2.0590745
+-0.0132500 3.9017578
+-0.0132000 2.5197453
+-0.0131500 -0.0139442
+-0.0131000 4.1320932
+-0.0130500 1.8287391
+-0.0130000 1.1377328
+-0.0129500 2.0590745
+-0.0129000 2.9804161
+-0.0128500 3.4410869
+-0.0128000 2.7500807
+-0.0127500 5.2837702
+-0.0127000 5.2837702
+-0.0126500 3.9017578
+-0.0126000 1.8287391
+-0.0125500 1.8287391
+-0.0125000 4.3624286
+-0.0124500 1.3680682
+-0.0124000 1.3680682
+-0.0123500 1.8287391
+-0.0123000 3.6714223
+-0.0122500 1.5984037
+-0.0122000 1.5984037
+-0.0121500 1.1377328
+-0.0121000 -0.0139442
+-0.0120500 3.9017578
+-0.0120000 1.8287391
+-0.0119500 2.7500807
+-0.0119000 1.3680682
+-0.0118500 3.4410869
+-0.0118000 2.5197453
+-0.0117500 3.9017578
+-0.0117000 5.0534348
+-0.0116500 4.1320932
+-0.0116000 7.1264535
+-0.0115500 4.1320932
+-0.0115000 6.8961181
+-0.0114500 4.8230994
+-0.0114000 4.5927640
+-0.0113500 3.4410869
+-0.0113000 6.8961181
+-0.0112500 5.0534348
+-0.0112000 4.8230994
+-0.0111500 5.2837702
+-0.0111000 2.5197453
+-0.0110500 2.9804161
+-0.0110000 2.5197453
+-0.0109500 2.0590745
+-0.0109000 3.4410869
+-0.0108500 3.4410869
+-0.0108000 4.1320932
+-0.0107500 3.9017578
+-0.0107000 4.8230994
+-0.0106500 3.2107515
+-0.0106000 4.8230994
+-0.0105500 4.5927640
+-0.0105000 3.9017578
+-0.0104500 2.7500807
+-0.0104000 2.0590745
+-0.0103500 1.8287391
+-0.0103000 1.3680682
+-0.0102500 3.2107515
+-0.0102000 2.0590745
+-0.0101500 2.2894099
+-0.0101000 1.5984037
+-0.0100500 0.4467266
+-0.0100000 2.2894099
+-0.0099500 2.0590745
+-0.0099000 1.3680682
+-0.0098500 1.5984037
+-0.0098000 2.5197453
+-0.0097500 1.3680682
+-0.0097000 0.6770620
+-0.0096500 2.7500807
+-0.0096000 3.4410869
+-0.0095500 2.2894099
+-0.0095000 0.9073974
+-0.0094500 3.4410869
+-0.0094000 0.4467266
+-0.0093500 1.8287391
+-0.0093000 2.0590745
+-0.0092500 4.5927640
+-0.0092000 2.0590745
+-0.0091500 2.0590745
+-0.0091000 1.8287391
+-0.0090500 2.2894099
+-0.0090000 2.9804161
+-0.0089500 3.9017578
+-0.0089000 3.9017578
+-0.0088500 2.2894099
+-0.0088000 1.5984037
+-0.0087500 0.6770620
+-0.0087000 -0.4746150
+-0.0086500 0.6770620
+-0.0086000 2.2894099
+-0.0085500 1.3680682
+-0.0085000 2.0590745
+-0.0084500 3.4410869
+-0.0084000 2.9804161
+-0.0083500 -0.0139442
+-0.0083000 4.3624286
+-0.0082500 2.5197453
+-0.0082000 2.5197453
+-0.0081500 2.0590745
+-0.0081000 2.0590745
+-0.0080500 1.5984037
+-0.0080000 2.5197453
+-0.0079500 2.2894099
+-0.0079000 3.2107515
+-0.0078500 -0.7049504
+-0.0078000 2.7500807
+-0.0077500 -0.2442796
+-0.0077000 -1.6262921
+-0.0076500 1.3680682
+-0.0076000 0.6770620
+-0.0075500 0.4467266
+-0.0075000 -0.4746150
+-0.0074500 0.4467266
+-0.0074000 -0.4746150
+-0.0073500 -0.9352859
+-0.0073000 3.6714223
+-0.0072500 -1.3959567
+-0.0072000 3.2107515
+-0.0071500 3.2107515
+-0.0071000 0.9073974
+-0.0070500 2.7500807
+-0.0070000 -0.2442796
+-0.0069500 -0.7049504
+-0.0069000 0.2163912
+-0.0068500 -0.4746150
+-0.0068000 -1.8566275
+-0.0067500 0.4467266
+-0.0067000 -0.7049504
+-0.0066500 -1.6262921
+-0.0066000 -1.1656213
+-0.0065500 -0.2442796
+-0.0065000 -0.4746150
+-0.0064500 -0.4746150
+-0.0064000 1.5984037
+-0.0063500 1.3680682
+-0.0063000 1.8287391
+-0.0062500 -0.9352859
+-0.0062000 0.2163912
+-0.0061500 1.5984037
+-0.0061000 1.8287391
+-0.0060500 3.2107515
+-0.0060000 4.1320932
+-0.0059500 5.7444410
+-0.0059000 2.2894099
+-0.0058500 0.9073974
+-0.0058000 2.7500807
+-0.0057500 0.6770620
+-0.0057000 -0.0139442
+-0.0056500 -0.9352859
+-0.0056000 0.6770620
+-0.0055500 -1.1656213
+-0.0055000 -1.8566275
+-0.0054500 -1.1656213
+-0.0054000 -1.8566275
+-0.0053500 -2.3172983
+-0.0053000 0.2163912
+-0.0052500 1.5984037
+-0.0052000 0.4467266
+-0.0051500 2.0590745
+-0.0051000 1.1377328
+-0.0050500 -0.7049504
+-0.0050000 1.5984037
+-0.0049500 -0.0139442
+-0.0049000 2.5197453
+-0.0048500 -0.4746150
+-0.0048000 -0.2442796
+-0.0047500 3.4410869
+-0.0047000 -0.0139442
+-0.0046500 2.5197453
+-0.0046000 1.3680682
+-0.0045500 3.2107515
+-0.0045000 -0.9352859
+-0.0044500 0.4467266
+-0.0044000 2.2894099
+-0.0043500 0.2163912
+-0.0043000 0.9073974
+-0.0042500 2.2894099
+-0.0042000 -0.0139442
+-0.0041500 1.5984037
+-0.0041000 1.1377328
+-0.0040500 4.8230994
+-0.0040000 2.7500807
+-0.0039500 2.5197453
+-0.0039000 3.2107515
+-0.0038500 5.0534348
+-0.0038000 1.5984037
+-0.0037500 1.3680682
+-0.0037000 3.4410869
+-0.0036500 2.0590745
+-0.0036000 2.9804161
+-0.0035500 0.4467266
+-0.0035000 0.9073974
+-0.0034500 4.3624286
+-0.0034000 2.2894099
+-0.0033500 2.2894099
+-0.0033000 2.0590745
+-0.0032500 1.5984037
+-0.0032000 0.2163912
+-0.0031500 2.0590745
+-0.0031000 1.3680682
+-0.0030500 1.1377328
+-0.0030000 -0.4746150
+-0.0029500 0.4467266
+-0.0029000 2.7500807
+-0.0028500 2.0590745
+-0.0028000 2.2894099
+-0.0027500 -0.0139442
+-0.0027000 1.8287391
+-0.0026500 1.5984037
+-0.0026000 1.3680682
+-0.0025500 1.8287391
+-0.0025000 0.2163912
+-0.0024500 1.1377328
+-0.0024000 4.5927640
+-0.0023500 2.5197453
+-0.0023000 0.2163912
+-0.0022500 0.9073974
+-0.0022000 1.5984037
+-0.0021500 2.0590745
+-0.0021000 2.9804161
+-0.0020500 1.1377328
+-0.0020000 0.9073974
+-0.0019500 2.7500807
+-0.0019000 1.3680682
+-0.0018500 2.7500807
+-0.0018000 -0.7049504
+-0.0017500 2.0590745
+-0.0017000 1.1377328
+-0.0016500 1.1377328
+-0.0016000 1.1377328
+-0.0015500 0.9073974
+-0.0015000 2.2894099
+-0.0014500 0.6770620
+-0.0014000 2.5197453
+-0.0013500 2.2894099
+-0.0013000 2.5197453
+-0.0012500 1.5984037
+-0.0012000 1.8287391
+-0.0011500 0.2163912
+-0.0011000 0.9073974
+-0.0010500 4.1320932
+-0.0010000 2.0590745
+-0.0009500 2.7500807
+-0.0009000 1.3680682
+-0.0008500 2.9804161
+-0.0008000 2.7500807
+-0.0007500 2.2894099
+-0.0007000 1.5984037
+-0.0006500 1.5984037
+-0.0006000 -1.6262921
+-0.0005500 -2.3172983
+-0.0005000 -0.7049504
+-0.0004500 -2.7779691
+-0.0004000 0.9073974
+-0.0003500 0.9073974
+-0.0003000 0.6770620
+-0.0002500 0.9073974
+-0.0002000 -0.9352859
+-0.0001500 0.4467266
+-0.0001000 2.0590745
+-0.0000500 2.7500807
+0.0000000 5.0534348
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_745.dia.ref b/modules/spreadsheet/tests/nonreg_tests/ticket_745.dia.ref
new file mode 100755
index 000000000..8bc5aba71
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_745.dia.ref
@@ -0,0 +1,28 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 745 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/745/
+//
+// <-- Short Description -->
+// csvTextScan did no convert "1,1" into double.
+// =============================================================================
+// Example #1
+M = [
+"1,1000000000000001 0,10000000000000001"
+"0,10000000000000001 1,1000000000000001"
+"0,10000000000000001 0,10000000000000001"
+];
+A = csvTextScan(M, " ", ",");
+// Example #2
+csvDefault("separator"," ");
+csvDefault("decimal",",");
+x = csvStringToDouble("1,1000000000000001");
+assert_checkequal(x, 1.1000000000000001);
+// Example #2
+A = csvTextScan("1,1000000000000001", " ", ",");
+assert_checkequal(A, 1.1000000000000001);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/nonreg_tests/ticket_745.tst b/modules/spreadsheet/tests/nonreg_tests/ticket_745.tst
new file mode 100755
index 000000000..48a64e4ee
--- /dev/null
+++ b/modules/spreadsheet/tests/nonreg_tests/ticket_745.tst
@@ -0,0 +1,29 @@
+// =============================================================================
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+// <-- Non-regression test for bug 745 -->
+//
+// <-- URL -->
+// http://forge.scilab.org/index.php/p/csv-readwrite/issues/745/
+//
+// <-- Short Description -->
+// csvTextScan did no convert "1,1" into double.
+// =============================================================================
+// Example #1
+M = [
+"1,1000000000000001 0,10000000000000001"
+"0,10000000000000001 1,1000000000000001"
+"0,10000000000000001 0,10000000000000001"
+];
+A = csvTextScan(M, " ", ",");
+// Example #2
+csvDefault("separator"," ");
+csvDefault("decimal",",");
+x = csvStringToDouble("1,1000000000000001");
+assert_checkequal(x, 1.1000000000000001);
+// Example #2
+A = csvTextScan("1,1000000000000001", " ", ",");
+assert_checkequal(A, 1.1000000000000001);
+
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/K_1.csv b/modules/spreadsheet/tests/unit_tests/K_1.csv
new file mode 100755
index 000000000..f2b69b51d
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/K_1.csv
@@ -0,0 +1,3 @@
+1.1000000000000001,0.10000000000000001
+0.10000000000000001,1.1000000000000001
+0.10000000000000001,0.10000000000000001
diff --git a/modules/spreadsheet/tests/unit_tests/K_2.csv b/modules/spreadsheet/tests/unit_tests/K_2.csv
new file mode 100755
index 000000000..dfb5babe8
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/K_2.csv
@@ -0,0 +1,3 @@
+1.1000000000000001 0.10000000000000001
+0.10000000000000001 1.1000000000000001
+0.10000000000000001 0.10000000000000001
diff --git a/modules/spreadsheet/tests/unit_tests/K_3.csv b/modules/spreadsheet/tests/unit_tests/K_3.csv
new file mode 100755
index 000000000..2bdb072eb
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/K_3.csv
@@ -0,0 +1,3 @@
+1,1000000000000001 0,10000000000000001
+0,10000000000000001 1,1000000000000001
+0,10000000000000001 0,10000000000000001
diff --git a/modules/spreadsheet/tests/unit_tests/K_4.csv b/modules/spreadsheet/tests/unit_tests/K_4.csv
new file mode 100755
index 000000000..8e0e5254e
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/K_4.csv
@@ -0,0 +1,3 @@
+1,1000000000000001;0,10000000000000001
+0,10000000000000001;1,1000000000000001
+0,10000000000000001;0,10000000000000001
diff --git a/modules/spreadsheet/tests/unit_tests/M_1.csv b/modules/spreadsheet/tests/unit_tests/M_1.csv
new file mode 100755
index 000000000..9196f972b
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/M_1.csv
@@ -0,0 +1,3 @@
+1,0,0,0,0
+0,1,0,0,0
+0,0,1,0,0
diff --git a/modules/spreadsheet/tests/unit_tests/M_2.csv b/modules/spreadsheet/tests/unit_tests/M_2.csv
new file mode 100755
index 000000000..2b0295fe6
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/M_2.csv
@@ -0,0 +1,3 @@
+1 0 0 0 0
+0 1 0 0 0
+0 0 1 0 0
diff --git a/modules/spreadsheet/tests/unit_tests/M_3.csv b/modules/spreadsheet/tests/unit_tests/M_3.csv
new file mode 100755
index 000000000..e79e01d34
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/M_3.csv
@@ -0,0 +1,3 @@
+1 0 0 0 0
+0 1 0 0 0
+0 0 1 0 0
diff --git a/modules/spreadsheet/tests/unit_tests/M_4.csv b/modules/spreadsheet/tests/unit_tests/M_4.csv
new file mode 100755
index 000000000..e52fe1550
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/M_4.csv
@@ -0,0 +1,3 @@
+1;0;0;0;0
+0;1;0;0;0
+0;0;1;0;0
diff --git a/modules/spreadsheet/tests/unit_tests/N_1.csv b/modules/spreadsheet/tests/unit_tests/N_1.csv
new file mode 100755
index 000000000..4eff5b2a5
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/N_1.csv
@@ -0,0 +1,2 @@
+Nan,1,Nan
+-Inf,Inf,4
diff --git a/modules/spreadsheet/tests/unit_tests/N_2.csv b/modules/spreadsheet/tests/unit_tests/N_2.csv
new file mode 100755
index 000000000..ddb1d9194
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/N_2.csv
@@ -0,0 +1,2 @@
+Nan 1 Nan
+-Inf Inf 4
diff --git a/modules/spreadsheet/tests/unit_tests/N_3.csv b/modules/spreadsheet/tests/unit_tests/N_3.csv
new file mode 100755
index 000000000..a2463cf24
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/N_3.csv
@@ -0,0 +1,2 @@
+Nan 1 Nan
+-Inf Inf 4
diff --git a/modules/spreadsheet/tests/unit_tests/N_4.csv b/modules/spreadsheet/tests/unit_tests/N_4.csv
new file mode 100755
index 000000000..34d51cf4a
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/N_4.csv
@@ -0,0 +1,2 @@
+Nan;1;Nan
+-Inf;Inf;4
diff --git a/modules/spreadsheet/tests/unit_tests/S_1.csv b/modules/spreadsheet/tests/unit_tests/S_1.csv
new file mode 100755
index 000000000..6d8ea2fd9
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/S_1.csv
@@ -0,0 +1,2 @@
+Allan|2|CORNET
+csv read/write toolbox|3|for scilab
diff --git a/modules/spreadsheet/tests/unit_tests/S_2.csv b/modules/spreadsheet/tests/unit_tests/S_2.csv
new file mode 100755
index 000000000..1c9d35e11
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/S_2.csv
@@ -0,0 +1,2 @@
+Allan 2 CORNET
+csv read/write toolbox 3 for scilab
diff --git a/modules/spreadsheet/tests/unit_tests/S_3.csv b/modules/spreadsheet/tests/unit_tests/S_3.csv
new file mode 100755
index 000000000..cb1e55d95
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/S_3.csv
@@ -0,0 +1,2 @@
+Allan!2!CORNET
+csv read/write toolbox!3!for scilab
diff --git a/modules/spreadsheet/tests/unit_tests/S_4.csv b/modules/spreadsheet/tests/unit_tests/S_4.csv
new file mode 100755
index 000000000..fdbf15555
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/S_4.csv
@@ -0,0 +1,2 @@
+Allan;2;CORNET
+csv read/write toolbox;3;for scilab
diff --git a/modules/spreadsheet/tests/unit_tests/complex.csv b/modules/spreadsheet/tests/unit_tests/complex.csv
new file mode 100755
index 000000000..3471b4bf4
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/complex.csv
@@ -0,0 +1,5 @@
+0.211 -3.140 0.000
+1.000 40.780i -4.530i
+5.000+1.000i 5.000+3.500i 67.000-15.000i
+-Inf Inf+2.000i Inf-5.000i
+Nan Nan+Nani Nan+Nani
diff --git a/modules/spreadsheet/tests/unit_tests/complexdata.csv b/modules/spreadsheet/tests/unit_tests/complexdata.csv
new file mode 100755
index 000000000..b37761d7f
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/complexdata.csv
@@ -0,0 +1,3 @@
+6+3*i 13-7*i 20+4*i 27-1.5*i 34+3.14*i 41-3*i 48+3*i 55-7*i
++0 -0 Inf -Inf Nan 1.D+308 1.e-308 1.e-323
+
diff --git a/modules/spreadsheet/tests/unit_tests/csvDefault.dia.ref b/modules/spreadsheet/tests/unit_tests/csvDefault.dia.ref
new file mode 100755
index 000000000..795c5aff6
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvDefault.dia.ref
@@ -0,0 +1,31 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// =============================================================================
+// See all the available fields
+allvalues = csvDefault();
+expected = [
+ "separator" ","
+ "decimal" "."
+ "conversion" "double"
+ "precision" "%.17lg"
+ "regexp" ""
+];
+if getos() == "Windows" then
+ expected = [expected; "eol" "windows"];
+else
+ expected = [expected; "eol" "linux"];
+end
+expected = [expected; "encoding" "utf-8"];
+expected = [expected; "blank" "on"];
+assert_checkequal ( allvalues , expected );
+// Get the value of the "precision" field
+value = csvDefault("precision");
+assert_checkequal ( value , "%.17lg" );
+// Set the value of the "precision" field
+bRes = csvDefault("precision","%.17e");
+assert_checkequal ( bRes , %t );
+// Set the value of the "precision" field to
+// an impossible value
+bRes = csvDefault("precision","Ouch!");
+assert_checkequal ( bRes , %f );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvDefault.tst b/modules/spreadsheet/tests/unit_tests/csvDefault.tst
new file mode 100755
index 000000000..b33913e33
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvDefault.tst
@@ -0,0 +1,34 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// =============================================================================
+// See all the available fields
+allvalues = csvDefault();
+expected = [
+ "separator" ","
+ "decimal" "."
+ "conversion" "double"
+ "precision" "%.17lg"
+ "regexp" ""
+];
+
+if getos() == "Windows" then
+ expected = [expected; "eol" "windows"];
+else
+ expected = [expected; "eol" "linux"];
+end
+expected = [expected; "encoding" "utf-8"];
+expected = [expected; "blank" "on"];
+
+assert_checkequal ( allvalues , expected );
+// Get the value of the "precision" field
+value = csvDefault("precision");
+assert_checkequal ( value , "%.17lg" );
+// Set the value of the "precision" field
+bRes = csvDefault("precision","%.17e");
+assert_checkequal ( bRes , %t );
+// Set the value of the "precision" field to
+// an impossible value
+bRes = csvDefault("precision","Ouch!");
+assert_checkequal ( bRes , %f );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/unit_tests/csvIsnum.dia.ref b/modules/spreadsheet/tests/unit_tests/csvIsnum.dia.ref
new file mode 100755
index 000000000..24dd45276
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvIsnum.dia.ref
@@ -0,0 +1,35 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// <-- NO CHECK REF -->
+// =============================================================================
+assert_checkequal (csvIsnum('%pi'), %t);
+assert_checkequal (csvIsnum('1'), %t);
+assert_checkequal (csvIsnum('1.2'), %t);
+assert_checkequal (csvIsnum('+1.2'), %t);
+assert_checkequal (csvIsnum('-1.2'), %t);
+assert_checkequal (csvIsnum('1e2'), %t);
+if getos() == "Windows" then
+ assert_checkequal (csvIsnum('1d2'), %t);
+end
+assert_checkequal (csvIsnum('1E2'), %t);
+if getos() == "Windows" then
+ assert_checkequal (csvIsnum('1D2'), %t);
+end
+assert_checkequal (csvIsnum('1e+2'), %t);
+assert_checkequal (csvIsnum('1e-2'), %t);
+assert_checkequal (csvIsnum('+1e+2'), %t);
+assert_checkequal (csvIsnum('-1e+2'), %t);
+assert_checkequal (csvIsnum('-12e+3'), %t);
+assert_checkequal (csvIsnum('-1.2e+3'), %t);
+assert_checkequal (csvIsnum('-1.2e+345'), %t);
+assert_checkequal (csvIsnum('a'), %f);
+assert_checkequal (csvIsnum('e'), %f);
+assert_checkequal (csvIsnum('d'), %f);
+assert_checkequal (csvIsnum('E'), %f);
+assert_checkequal (csvIsnum('e'), %f);
+assert_checkequal (csvIsnum('-1.2a+345'), %f);
+assert_checkequal (csvIsnum('-1.2e+3+45'), %f);
+assert_checkequal (csvIsnum('-1.2e+3-45'), %f);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvIsnum.tst b/modules/spreadsheet/tests/unit_tests/csvIsnum.tst
new file mode 100755
index 000000000..f5d94f55b
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvIsnum.tst
@@ -0,0 +1,38 @@
+// =============================================================================
+// Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// <-- NO CHECK REF -->
+// =============================================================================
+assert_checkequal (csvIsnum('%pi'), %t);
+assert_checkequal (csvIsnum('1'), %t);
+assert_checkequal (csvIsnum('1.2'), %t);
+assert_checkequal (csvIsnum('+1.2'), %t);
+assert_checkequal (csvIsnum('-1.2'), %t);
+assert_checkequal (csvIsnum('1e2'), %t);
+if getos() == "Windows" then
+ assert_checkequal (csvIsnum('1d2'), %t);
+end
+assert_checkequal (csvIsnum('1E2'), %t);
+if getos() == "Windows" then
+ assert_checkequal (csvIsnum('1D2'), %t);
+end
+assert_checkequal (csvIsnum('1e+2'), %t);
+assert_checkequal (csvIsnum('1e-2'), %t);
+assert_checkequal (csvIsnum('+1e+2'), %t);
+assert_checkequal (csvIsnum('-1e+2'), %t);
+assert_checkequal (csvIsnum('-12e+3'), %t);
+assert_checkequal (csvIsnum('-1.2e+3'), %t);
+assert_checkequal (csvIsnum('-1.2e+345'), %t);
+assert_checkequal (csvIsnum('a'), %f);
+assert_checkequal (csvIsnum('e'), %f);
+assert_checkequal (csvIsnum('d'), %f);
+assert_checkequal (csvIsnum('E'), %f);
+assert_checkequal (csvIsnum('e'), %f);
+assert_checkequal (csvIsnum('-1.2a+345'), %f);
+assert_checkequal (csvIsnum('-1.2e+3+45'), %f);
+assert_checkequal (csvIsnum('-1.2e+3-45'), %f);
+// =============================================================================
+
+
+
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead.dia.ref b/modules/spreadsheet/tests/unit_tests/csvRead.dia.ref
new file mode 100755
index 000000000..1228293df
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead.dia.ref
@@ -0,0 +1,97 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+Mstr = [
+"1" "0" "0" "0" "0"
+"0" "1" "0" "0" "0"
+"0" "0" "1" "0" "0"
+];
+//
+r = csvRead(fullfile(path,"M_1.csv"),[],[],"string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_3.csv"), " ", ",", "string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_4.csv"), ";", ",", "string");
+assert_checkequal (r,Mstr);
+// =============================================================================
+Nstr = [
+"Nan" "1" "Nan"
+"-Inf" "Inf" "4"
+];
+//
+r = csvRead(fullfile(path,"N_1.csv"), [], [], "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_3.csv"), " ", ",", "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_4.csv"), ";", ",", "string");
+assert_checkequal (r,Nstr);
+// =============================================================================
+Kstr = [
+"1.1000000000000001" "0.10000000000000001"
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+Kstr2 = [
+"1,1000000000000001" "0,10000000000000001"
+"0,10000000000000001" "1,1000000000000001"
+"0,10000000000000001" "0,10000000000000001"
+];
+//
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_3.csv"), " ", ",", "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_4.csv"), ";", ",", "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_4.csv"), ";", [], "string");
+assert_checkequal (r,Kstr2);
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", [], "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_3.csv"), "!", ",", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_4.csv"), ";", ",", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", ".", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", ".", "double");
+ref = [%nan , 2, %nan; %nan, 3, %nan];
+assert_checkequal ( r , ref);
+// =============================================================================
+filename = fullfile(path,"data.csv");
+N = csvRead(filename,",",".","double",["Nan", "0"]);
+expected = [%inf, 0];
+assert_checkequal ( N , expected );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead.tst b/modules/spreadsheet/tests/unit_tests/csvRead.tst
new file mode 100755
index 000000000..9093868dc
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead.tst
@@ -0,0 +1,98 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+Mstr = [
+"1" "0" "0" "0" "0"
+"0" "1" "0" "0" "0"
+"0" "0" "1" "0" "0"
+];
+//
+r = csvRead(fullfile(path,"M_1.csv"),[],[],"string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_3.csv"), " ", ",", "string");
+assert_checkequal (r,Mstr);
+//
+r = csvRead(fullfile(path,"M_4.csv"), ";", ",", "string");
+assert_checkequal (r,Mstr);
+// =============================================================================
+Nstr = [
+"Nan" "1" "Nan"
+"-Inf" "Inf" "4"
+];
+//
+r = csvRead(fullfile(path,"N_1.csv"), [], [], "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_3.csv"), " ", ",", "string");
+assert_checkequal (r,Nstr);
+//
+r = csvRead(fullfile(path,"N_4.csv"), ";", ",", "string");
+assert_checkequal (r,Nstr);
+// =============================================================================
+Kstr = [
+"1.1000000000000001" "0.10000000000000001"
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+Kstr2 = [
+"1,1000000000000001" "0,10000000000000001"
+"0,10000000000000001" "1,1000000000000001"
+"0,10000000000000001" "0,10000000000000001"
+];
+//
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_3.csv"), " ", ",", "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_4.csv"), ";", ",", "string");
+assert_checkequal (r,Kstr);
+//
+r = csvRead(fullfile(path,"K_4.csv"), ";", [], "string");
+assert_checkequal (r,Kstr2);
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", [], "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_2.csv"), ascii(9), [], "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_3.csv"), "!", ",", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_4.csv"), ";", ",", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", ".", "string");
+assert_checkequal (r,S);
+//
+r = csvRead(fullfile(path,"S_1.csv"), "|", ".", "double");
+ref = [%nan , 2, %nan; %nan, 3, %nan];
+assert_checkequal ( r , ref);
+// =============================================================================
+filename = fullfile(path,"data.csv");
+N = csvRead(filename,",",".","double",["Nan", "0"]);
+expected = [%inf, 0];
+assert_checkequal ( N , expected );
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_range.dia.ref b/modules/spreadsheet/tests/unit_tests/csvRead_range.dia.ref
new file mode 100755
index 000000000..0dcbb27e7
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_range.dia.ref
@@ -0,0 +1,87 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+path = SCI + "/modules/spreadsheet/tests/unit_tests/";
+// Not symetric range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [2 1 2 2] );
+expected = [
+0.10000000000000001 1.1000000000000001
+];
+assert_checkequal(r, expected);
+// Read complex doubles
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 3 2] );
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+// Not symetric range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 2 2]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+];
+assert_checkequal(r, expected);
+// Inconsistent range: C2 < C1
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 3 3 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: Inconsistent range.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+// Inconsistent range: R2 < R1
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [3 1 2 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: Inconsistent range.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+// Non-integer indice
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 1 1.5 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: A matrix of double, with integer values, expected.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+// Infinite indice
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 1 %inf 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: A matrix of double, with integer values, expected.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+// Row right indice greater than actual number of rows (string) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 999 2]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+// Column right indice greater than actual number of columns (string) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 3 999]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+// Row or column left indice greater than actual number of rows (string) => error
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""string"", [], [], [999 1 1000 2]);";
+assert_checkerror(instr, refMsg);
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""string"", [], [], [1 999 2 1000]);";
+assert_checkerror(instr, refMsg);
+// Row right indice greater than actual number of rows (double) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [3 1 999 2]);
+expected = [
+0.10000000000000001 0.10000000000000001
+];
+assert_checkequal(r, expected);
+// Column right indice greater than actual number of columns (double) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [2 2 3 999]);
+expected = [
+1.1000000000000001
+0.10000000000000001
+];
+assert_checkequal(r, expected);
+// Row or column left indice greater than actual number of rows (double) => error
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""double"", [], [], [999 1 1000 2]);";
+assert_checkerror(instr, refMsg);
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""double"", [], [], [1 999 2 1000]);";
+assert_checkerror(instr, refMsg);
+// r = csvRead(fullfile(path,"complexdata.csv"), [], [], "double", [], [], [2 1 3 2]);
+// Fails due to ticket #360
+// TODO : range of doubles complex
+// TODO : Row indice larger than actual number of rows: complex double case
+// TODO : Col indice larger than actual number of columns: complex double case
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_range.tst b/modules/spreadsheet/tests/unit_tests/csvRead_range.tst
new file mode 100755
index 000000000..391127510
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_range.tst
@@ -0,0 +1,103 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+path = SCI + "/modules/spreadsheet/tests/unit_tests/";
+
+// Not symetric range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [2 1 2 2] );
+expected = [
+0.10000000000000001 1.1000000000000001
+];
+assert_checkequal(r, expected);
+
+// Read complex doubles
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 3 2] );
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+
+// Not symetric range
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 2 2]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+];
+assert_checkequal(r, expected);
+
+// Inconsistent range: C2 < C1
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 3 3 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: Inconsistent range.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+
+// Inconsistent range: R2 < R1
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [3 1 2 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: Inconsistent range.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+
+// Non-integer indice
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 1 1.5 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: A matrix of double, with integer values, expected.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+
+// Infinite indice
+instr = "r = csvRead(fullfile(path,""K_1.csv""), [], [], ""string"", [], [], [2 1 %inf 2]);";
+refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: A matrix of double, with integer values, expected.\n"), "csvRead", 7);
+assert_checkerror(instr, refMsg);
+
+// Row right indice greater than actual number of rows (string) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 999 2]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+
+// Column right indice greater than actual number of columns (string) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "string", [], [], [2 1 3 999]);
+expected = [
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+assert_checkequal(r, expected);
+
+// Row or column left indice greater than actual number of rows (string) => error
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""string"", [], [], [999 1 1000 2]);";
+assert_checkerror(instr, refMsg);
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""string"", [], [], [1 999 2 1000]);";
+assert_checkerror(instr, refMsg);
+
+// Row right indice greater than actual number of rows (double) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [3 1 999 2]);
+expected = [
+0.10000000000000001 0.10000000000000001
+];
+assert_checkequal(r, expected);
+
+// Column right indice greater than actual number of columns (double) => truncate
+r = csvRead(fullfile(path,"K_1.csv"), [], [], "double", [], [], [2 2 3 999]);
+expected = [
+1.1000000000000001
+0.10000000000000001
+];
+assert_checkequal(r, expected);
+
+// Row or column left indice greater than actual number of rows (double) => error
+refMsg = msprintf(gettext("%s: Range row or/and column left indice(s) out of bounds.\n"), "csvRead");
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""double"", [], [], [999 1 1000 2]);";
+assert_checkerror(instr, refMsg);
+instr = "r = csvRead(fullfile(path, ""K_1.csv""), [], [], ""double"", [], [], [1 999 2 1000]);";
+assert_checkerror(instr, refMsg);
+
+// r = csvRead(fullfile(path,"complexdata.csv"), [], [], "double", [], [], [2 1 3 2]);
+// Fails due to ticket #360
+// TODO : range of doubles complex
+// TODO : Row indice larger than actual number of rows: complex double case
+// TODO : Col indice larger than actual number of columns: complex double case
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_regexp.dia.ref b/modules/spreadsheet/tests/unit_tests/csvRead_regexp.dia.ref
new file mode 100755
index 000000000..eed288941
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_regexp.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+filename = fullfile(path, "csv_regexp.csv");
+[y, x] = csvRead(filename, [], [], [], [], "/\/\//");
+ref_x = ["// tata"; ..
+ "// titi"; ..
+ "// toto"; ..
+ "// tutu"];
+ref_y = [ 1. 0. 0. 0. 0. ; ..
+ 0. 1. 0. 0. 0. ; ..
+ 0. 0. 1. 0. 0.];
+assert_checkequal (ref_x , x);
+assert_checkequal (ref_y , y);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_regexp.tst b/modules/spreadsheet/tests/unit_tests/csvRead_regexp.tst
new file mode 100755
index 000000000..59fd5d0b8
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_regexp.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+filename = fullfile(path, "csv_regexp.csv");
+[y, x] = csvRead(filename, [], [], [], [], "/\/\//");
+ref_x = ["// tata"; ..
+ "// titi"; ..
+ "// toto"; ..
+ "// tutu"];
+ref_y = [ 1. 0. 0. 0. 0. ; ..
+ 0. 1. 0. 0. 0. ; ..
+ 0. 0. 1. 0. 0.];
+
+assert_checkequal (ref_x , x);
+assert_checkequal (ref_y , y);
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.dia.ref b/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.dia.ref
new file mode 100755
index 000000000..556951383
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.dia.ref
@@ -0,0 +1,101 @@
+// =============================================================================
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+content = ["a b c d e"; ..
+"1 2 3 4 5"; ..
+"2 3 4 5 6"; ..
+"3 4 5 6 7"; ..
+"4 5 6 7 8"; ..
+"5 6 7 8 9"; ..
+"6 7 8 9 10"]
+ content =
+
+!a b c d e !
+! !
+!1 2 3 4 5 !
+! !
+!2 3 4 5 6 !
+! !
+!3 4 5 6 7 !
+! !
+!4 5 6 7 8 !
+! !
+!5 6 7 8 9 !
+! !
+!6 7 8 9 10 !
+filename=TMPDIR+"/foo.csv";
+mputl(content,filename);
+a=read_csv(filename)
+ a =
+
+!a b c d e !
+! !
+!1 2 3 4 5 !
+! !
+!2 3 4 5 6 !
+! !
+!3 4 5 6 7 !
+! !
+!4 5 6 7 8 !
+! !
+!5 6 7 8 9 !
+! !
+!6 7 8 9 10 !
+b=read_csv(filename,[],[],"string")
+ b =
+
+!a b c d e !
+! !
+!1 2 3 4 5 !
+! !
+!2 3 4 5 6 !
+! !
+!3 4 5 6 7 !
+! !
+!4 5 6 7 8 !
+! !
+!5 6 7 8 9 !
+! !
+!6 7 8 9 10 !
+assert_checkequal(a, b);
+a2=csvRead(filename)
+ a2 =
+
+ Nan
+ 12345.
+ 23456.
+ 34567.
+ 45678.
+ 56789.
+ 678910.
+b2=csvRead(filename,[],[],"double")
+ b2 =
+
+ Nan
+ 12345.
+ 23456.
+ 34567.
+ 45678.
+ 56789.
+ 678910.
+assert_checkequal(a, b);
+b3=csvRead(filename,[],[],"string")
+ b3 =
+
+!a b c d e !
+! !
+!1 2 3 4 5 !
+! !
+!2 3 4 5 6 !
+! !
+!3 4 5 6 7 !
+! !
+!4 5 6 7 8 !
+! !
+!5 6 7 8 9 !
+! !
+!6 7 8 9 10 !
+assert_checkequal(a,b3);
+assert_checkequal(b,b3);
diff --git a/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.tst b/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.tst
new file mode 100755
index 000000000..920be144f
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvRead_vs_read_csv.tst
@@ -0,0 +1,26 @@
+// =============================================================================
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+content = ["a b c d e"; ..
+"1 2 3 4 5"; ..
+"2 3 4 5 6"; ..
+"3 4 5 6 7"; ..
+"4 5 6 7 8"; ..
+"5 6 7 8 9"; ..
+"6 7 8 9 10"]
+filename=TMPDIR+"/foo.csv";
+mputl(content,filename);
+
+a=read_csv(filename)
+b=read_csv(filename,[],[],"string")
+assert_checkequal(a, b);
+
+a2=csvRead(filename)
+b2=csvRead(filename,[],[],"double")
+assert_checkequal(a, b);
+
+b3=csvRead(filename,[],[],"string")
+assert_checkequal(a,b3);
+assert_checkequal(b,b3); \ No newline at end of file
diff --git a/modules/spreadsheet/tests/unit_tests/csvTextScan.dia.ref b/modules/spreadsheet/tests/unit_tests/csvTextScan.dia.ref
new file mode 100755
index 000000000..39c1c15b1
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvTextScan.dia.ref
@@ -0,0 +1,140 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+A = " 1; 2; 3";
+B = " 4; 5; 6";
+C = [A;B];
+bbSTR = csvTextScan(C, ';', [], "string");
+expected = [
+" 1" , " 2" , " 3"
+" 4" , " 5" , " 6"
+];
+assert_checkequal ( bbSTR , expected );
+// =============================================================================
+bbDouble = csvTextScan(C, ';', [], 'double');
+expected = [1 2 3;4 5 6];
+assert_checkequal ( bbDouble , expected );
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+Mstr = [
+"1" "0" "0" "0" "0"
+"0" "1" "0" "0" "0"
+"0" "0" "1" "0" "0"
+];
+//
+r = mgetl(fullfile(path,"M_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Mstr);
+// =============================================================================
+Nstr = [
+"Nan" "1" "Nan"
+"-Inf" "Inf" "4"
+];
+//
+r = mgetl(fullfile(path,"N_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Nstr);
+// =============================================================================
+Kstr = [
+"1.1000000000000001" "0.10000000000000001"
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+Kstr2 = [
+"1,1000000000000001" "0,10000000000000001"
+"0,10000000000000001" "1,1000000000000001"
+"0,10000000000000001" "0,10000000000000001"
+];
+//
+r = mgetl(fullfile(path,"K_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_3.csv"));
+b = csvTextScan(r, " ", [], "string");
+assert_checkequal (b,Kstr2);
+//
+r = mgetl(fullfile(path,"K_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_4.csv"));
+b = csvTextScan(r, ";", [], "string");
+assert_checkequal (b,Kstr2);
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", [], "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_3.csv"));
+b = csvTextScan(r, "!", ",", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", ".", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", ".", "double");
+ref = [%nan , 2, %nan; %nan, 3, %nan];
+assert_checkequal ( b , ref);
+// =============================================================================
+r = mgetl(fullfile(path, "double_quotes.csv"), 5);
+ref = ['Dummy1', 'Dummy1'; ..
+ 'Dummy2', 'Dummy2, Dummy2'; ..
+ 'Dummy3', '(""Dummy3"")'; ..
+ '""Dummy4"" Dummy4','Dummy4'; ..
+ 'Dummy5', 'Dummy5 ""Dummy5""'];
+for i=1:5
+ b = csvTextScan(r(i), ",", [], "string");
+ assert_checkequal(b , ref(i,:));
+end
diff --git a/modules/spreadsheet/tests/unit_tests/csvTextScan.tst b/modules/spreadsheet/tests/unit_tests/csvTextScan.tst
new file mode 100755
index 000000000..39c1c15b1
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvTextScan.tst
@@ -0,0 +1,140 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+A = " 1; 2; 3";
+B = " 4; 5; 6";
+C = [A;B];
+bbSTR = csvTextScan(C, ';', [], "string");
+expected = [
+" 1" , " 2" , " 3"
+" 4" , " 5" , " 6"
+];
+assert_checkequal ( bbSTR , expected );
+// =============================================================================
+bbDouble = csvTextScan(C, ';', [], 'double');
+expected = [1 2 3;4 5 6];
+assert_checkequal ( bbDouble , expected );
+// =============================================================================
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+Mstr = [
+"1" "0" "0" "0" "0"
+"0" "1" "0" "0" "0"
+"0" "0" "1" "0" "0"
+];
+//
+r = mgetl(fullfile(path,"M_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Mstr);
+//
+r = mgetl(fullfile(path,"M_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Mstr);
+// =============================================================================
+Nstr = [
+"Nan" "1" "Nan"
+"-Inf" "Inf" "4"
+];
+//
+r = mgetl(fullfile(path,"N_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Nstr);
+//
+r = mgetl(fullfile(path,"N_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Nstr);
+// =============================================================================
+Kstr = [
+"1.1000000000000001" "0.10000000000000001"
+"0.10000000000000001" "1.1000000000000001"
+"0.10000000000000001" "0.10000000000000001"
+];
+Kstr2 = [
+"1,1000000000000001" "0,10000000000000001"
+"0,10000000000000001" "1,1000000000000001"
+"0,10000000000000001" "0,10000000000000001"
+];
+//
+r = mgetl(fullfile(path,"K_1.csv"));
+b = csvTextScan(r, [], [], "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_3.csv"));
+b = csvTextScan(r, " ", ",", "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_3.csv"));
+b = csvTextScan(r, " ", [], "string");
+assert_checkequal (b,Kstr2);
+//
+r = mgetl(fullfile(path,"K_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,Kstr);
+//
+r = mgetl(fullfile(path,"K_4.csv"));
+b = csvTextScan(r, ";", [], "string");
+assert_checkequal (b,Kstr2);
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", [], "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_2.csv"));
+b = csvTextScan(r, ascii(9), [], "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_3.csv"));
+b = csvTextScan(r, "!", ",", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_4.csv"));
+b = csvTextScan(r, ";", ",", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", ".", "string");
+assert_checkequal (b,S);
+//
+r = mgetl(fullfile(path,"S_1.csv"));
+b = csvTextScan(r, "|", ".", "double");
+ref = [%nan , 2, %nan; %nan, 3, %nan];
+assert_checkequal ( b , ref);
+// =============================================================================
+r = mgetl(fullfile(path, "double_quotes.csv"), 5);
+ref = ['Dummy1', 'Dummy1'; ..
+ 'Dummy2', 'Dummy2, Dummy2'; ..
+ 'Dummy3', '(""Dummy3"")'; ..
+ '""Dummy4"" Dummy4','Dummy4'; ..
+ 'Dummy5', 'Dummy5 ""Dummy5""'];
+for i=1:5
+ b = csvTextScan(r(i), ",", [], "string");
+ assert_checkequal(b , ref(i,:));
+end
diff --git a/modules/spreadsheet/tests/unit_tests/csvWrite.dia.ref b/modules/spreadsheet/tests/unit_tests/csvWrite.dia.ref
new file mode 100755
index 000000000..1f346a413
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvWrite.dia.ref
@@ -0,0 +1,116 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+M = eye(3, 5);
+//
+filename = fullfile(TMPDIR,"M_1.csv");
+csvWrite(M, filename);
+assert_checkfilesequal ( filename , fullfile(path,"M_1.csv") );
+//
+filename = fullfile(TMPDIR,"M_2.csv");
+csvWrite(M, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"M_2.csv") );
+//
+filename = fullfile(TMPDIR,"M_3.csv");
+csvWrite(M, filename, " ", ",");
+assert_checkfilesequal ( filename , fullfile(path,"M_3.csv") );
+//
+filename = fullfile(TMPDIR,"M_4.csv");
+csvWrite(M, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"M_4.csv") );
+// =============================================================================
+N = [%nan , 1, %nan ; -%inf , %inf, 4];
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename);
+assert_checkfilesequal ( filename , fullfile(path,"N_1.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"N_2.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, " ", ",");
+assert_checkfilesequal (filename , fullfile(path,"N_3.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"N_4.csv") );
+// =============================================================================
+K = eye(3, 2) + 0.1;
+//
+filename = fullfile(TMPDIR,"K_1.csv");
+csvWrite(K, filename);
+assert_checkfilesequal ( filename , fullfile(path,"K_1.csv") );
+//
+filename = fullfile(TMPDIR,"K_2.csv");
+csvWrite(K, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"K_2.csv") );
+//
+filename = fullfile(TMPDIR,"K_3.csv");
+csvWrite(K, filename, " ", ",");
+assert_checkfilesequal ( filename , fullfile(path,"K_3.csv") );
+//
+filename = fullfile(TMPDIR,"K_4.csv");
+csvWrite(K, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"K_4.csv") );
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+filename = fullfile(TMPDIR,"S_1.csv");
+csvWrite(S, filename, "|");
+assert_checkfilesequal ( filename , fullfile(path,"S_1.csv") );
+//
+filename = fullfile(TMPDIR,"S_2.csv");
+csvWrite(S, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"S_2.csv") );
+//
+filename = fullfile(TMPDIR,"S_3.csv");
+csvWrite(S, filename, "!", ",");
+assert_checkfilesequal ( filename , fullfile(path,"S_3.csv") );
+//
+filename = fullfile(TMPDIR,"S_4.csv");
+csvWrite(S, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"S_4.csv") );
+// =============================================================================
+M = [%inf, %nan];
+filename = fullfile(TMPDIR,"data.csv");
+csvWrite(M, filename);
+assert_checkfilesequal ( filename , fullfile(path,"data.csv") );
+//
+// =============================================================================
+//
+// Configure the comments
+M = [1:4] * 0.1;
+comm = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+];
+filename = fullfile(TMPDIR,"test.csv");
+csvWrite(M, filename,[],[],[],comm);
+Mstr = mgetl(filename);
+expected = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+"0.10000000000000001,0.20000000000000001,0.30000000000000004,0.40000000000000002"
+];
+assert_checkequal ( Mstr , expected );
+// =============================================================================
+// complex matrix
+complexMatrix = [0.211, -3.14, 0; ..
+1+0*%i, 40.78*%i, -4.53*%i; ..
+5+%i, 5+3.5*%i, 67.0-15*%i; ..
+-%inf, %inf+2*%i, %inf-5.0*%i; ..
+%nan, %nan*%i, %nan+%nan*%i];
+//TODO check values with %inf*%i (currently bug on interpreting %inf*%i)
+filename = fullfile(TMPDIR, "complex.csv");
+write_csv(complexMatrix, filename, ascii(9), ".", "%5.3f");
+assert_checkfilesequal(filename , fullfile(path, "complex.csv"));
diff --git a/modules/spreadsheet/tests/unit_tests/csvWrite.tst b/modules/spreadsheet/tests/unit_tests/csvWrite.tst
new file mode 100755
index 000000000..1bd5ed9de
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csvWrite.tst
@@ -0,0 +1,119 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// Copyright (C) 2013 - Scilab Enterprises - Simon MARCHETTO
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+path = SCI+"/modules/spreadsheet/tests/unit_tests/";
+// =============================================================================
+M = eye(3, 5);
+//
+filename = fullfile(TMPDIR,"M_1.csv");
+csvWrite(M, filename);
+assert_checkfilesequal ( filename , fullfile(path,"M_1.csv") );
+//
+filename = fullfile(TMPDIR,"M_2.csv");
+csvWrite(M, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"M_2.csv") );
+//
+filename = fullfile(TMPDIR,"M_3.csv");
+csvWrite(M, filename, " ", ",");
+assert_checkfilesequal ( filename , fullfile(path,"M_3.csv") );
+//
+filename = fullfile(TMPDIR,"M_4.csv");
+csvWrite(M, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"M_4.csv") );
+// =============================================================================
+N = [%nan , 1, %nan ; -%inf , %inf, 4];
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename);
+assert_checkfilesequal ( filename , fullfile(path,"N_1.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"N_2.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, " ", ",");
+assert_checkfilesequal (filename , fullfile(path,"N_3.csv") );
+//
+filename = fullfile(TMPDIR,"N_1.csv");
+csvWrite(N, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"N_4.csv") );
+// =============================================================================
+K = eye(3, 2) + 0.1;
+//
+filename = fullfile(TMPDIR,"K_1.csv");
+csvWrite(K, filename);
+assert_checkfilesequal ( filename , fullfile(path,"K_1.csv") );
+//
+filename = fullfile(TMPDIR,"K_2.csv");
+csvWrite(K, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"K_2.csv") );
+//
+filename = fullfile(TMPDIR,"K_3.csv");
+csvWrite(K, filename, " ", ",");
+assert_checkfilesequal ( filename , fullfile(path,"K_3.csv") );
+//
+filename = fullfile(TMPDIR,"K_4.csv");
+csvWrite(K, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"K_4.csv") );
+// =============================================================================
+S = [
+ "Allan", "2", "CORNET";
+ "csv read/write toolbox", "3", "for scilab"
+];
+//
+filename = fullfile(TMPDIR,"S_1.csv");
+csvWrite(S, filename, "|");
+assert_checkfilesequal ( filename , fullfile(path,"S_1.csv") );
+//
+filename = fullfile(TMPDIR,"S_2.csv");
+csvWrite(S, filename, ascii(9));
+assert_checkfilesequal ( filename , fullfile(path,"S_2.csv") );
+//
+filename = fullfile(TMPDIR,"S_3.csv");
+csvWrite(S, filename, "!", ",");
+assert_checkfilesequal ( filename , fullfile(path,"S_3.csv") );
+//
+filename = fullfile(TMPDIR,"S_4.csv");
+csvWrite(S, filename, ";", ",");
+assert_checkfilesequal ( filename , fullfile(path,"S_4.csv") );
+// =============================================================================
+M = [%inf, %nan];
+filename = fullfile(TMPDIR,"data.csv");
+csvWrite(M, filename);
+assert_checkfilesequal ( filename , fullfile(path,"data.csv") );
+//
+// =============================================================================
+//
+// Configure the comments
+M = [1:4] * 0.1;
+comm = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+];
+filename = fullfile(TMPDIR,"test.csv");
+csvWrite(M, filename,[],[],[],comm);
+Mstr = mgetl(filename);
+expected = [
+"// Copyright (C) INRIA"
+"// This file must be used under the terms of the CeCILL."
+"0.10000000000000001,0.20000000000000001,0.30000000000000004,0.40000000000000002"
+];
+assert_checkequal ( Mstr , expected );
+// =============================================================================
+
+// complex matrix
+complexMatrix = [0.211, -3.14, 0; ..
+1+0*%i, 40.78*%i, -4.53*%i; ..
+5+%i, 5+3.5*%i, 67.0-15*%i; ..
+-%inf, %inf+2*%i, %inf-5.0*%i; ..
+%nan, %nan*%i, %nan+%nan*%i];
+
+//TODO check values with %inf*%i (currently bug on interpreting %inf*%i)
+
+filename = fullfile(TMPDIR, "complex.csv");
+write_csv(complexMatrix, filename, ascii(9), ".", "%5.3f");
+assert_checkfilesequal(filename , fullfile(path, "complex.csv"));
diff --git a/modules/spreadsheet/tests/unit_tests/csv_regexp.csv b/modules/spreadsheet/tests/unit_tests/csv_regexp.csv
new file mode 100755
index 000000000..7c21c0933
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csv_regexp.csv
@@ -0,0 +1,7 @@
+// tata
+1,0,0,0,0
+// titi
+0,1,0,0,0
+// toto
+0,0,1,0,0
+// tutu
diff --git a/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.dia.ref b/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.dia.ref
new file mode 100755
index 000000000..43e2b5eaf
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.dia.ref
@@ -0,0 +1,203 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvStringToDouble("-Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("+Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("-Infi");
+assert_checkequal ( r , complex(0,-%inf) );
+// =============================================================================
+r = csvStringToDouble("Infi");
+assert_checkequal ( r , complex(0,%inf) );
+// =============================================================================
+r = csvStringToDouble("+Infi");
+assert_checkequal ( r , complex(0,%inf) );
+// =============================================================================
+r = csvStringToDouble("Nan-Nani");
+assert_checkequal ( r , complex(%nan,%nan) );
+// =============================================================================
+r = csvStringToDouble("Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("-Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("+Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("Nan-Infi");
+assert_checkequal ( r , complex(%nan,-%inf) );
+// =============================================================================
+r = csvStringToDouble("-Inf-2i");
+assert_checkequal ( r , complex(-%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("+Inf-2i");
+assert_checkequal ( r , complex(%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("Inf-2i");
+assert_checkequal ( r , complex(%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("Inf-Infi");
+assert_checkequal ( r , complex(%inf,-%inf) );
+// =============================================================================
+r = csvStringToDouble("Inf+Infi");
+assert_checkequal ( r , complex(%inf,%inf) );
+// =============================================================================
+r = csvStringToDouble("1+Nani");
+assert_checkequal ( r , complex(1,%nan) );
+// =============================================================================
+r = csvStringToDouble("1-Nani");
+assert_checkequal ( r , complex(1,%nan) );
+// =============================================================================
+r = csvStringToDouble("-1-Nani");
+assert_checkequal ( r , complex(-1,%nan) );
+// =============================================================================
+r = csvStringToDouble("1+Infi");
+assert_checkequal ( r , complex(1,%inf) );
+// =============================================================================
+r = csvStringToDouble("1-Infi");
+assert_checkequal ( r , complex(1,-%inf) );
+// =============================================================================
+assert_checkequal ( csvStringToDouble("Nan") , %nan );
+assert_checkequal ( csvStringToDouble("-Nan"), %nan );
+assert_checkequal ( csvStringToDouble("+Nan"), %nan );
+assert_checkequal ( csvStringToDouble("-Inf") , -%inf );
+assert_checkequal ( csvStringToDouble("Inf") , %inf );
+assert_checkequal ( csvStringToDouble("+Inf") , %inf );
+assert_checkequal ( csvStringToDouble("+i") , %i );
+assert_checkequal ( csvStringToDouble("-i") , -%i );
+assert_checkequal ( csvStringToDouble("+j") , %i );
+assert_checkequal ( csvStringToDouble("-j") , -%i );
+assert_checkequal ( csvStringToDouble("i") , %i );
+assert_checkequal ( csvStringToDouble("j") , %i );
+assert_checkequal ( csvStringToDouble(" 3 + 2i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2i") , complex(3,- 2) );
+assert_checkequal ( csvStringToDouble(" -3 + 2i") , complex(-3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("- 3 - 2i") , complex(-3,-2) );
+assert_checkequal ( csvStringToDouble("+3 - 2i") , complex(+3,-2) );
+assert_checkequal ( csvStringToDouble("+3 + 2i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble("+3 - 2i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("4+i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("4-i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("-4+i") , complex(-4,1) );
+assert_checkequal ( csvStringToDouble("-4-i") , complex(-4,-1) );
+assert_checkequal ( csvStringToDouble("+4+i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("+4-i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("10") , 10 );
+assert_checkequal ( csvStringToDouble("+10") , 10 );
+assert_checkequal ( csvStringToDouble("-10") , -10 );
+assert_checkequal ( csvStringToDouble("10.") , 10 );
+assert_checkequal ( csvStringToDouble("+10.") , 10 );
+assert_checkequal ( csvStringToDouble("-10.") , -10 );
+assert_checkequal ( csvStringToDouble(".4") , .4 );
+assert_checkequal ( csvStringToDouble("+.4") , .4 );
+assert_checkequal ( csvStringToDouble("-.4") , -.4 );
+assert_checkequal ( csvStringToDouble("10.4") , 10.4 );
+assert_checkequal ( csvStringToDouble("+10.4") , 10.4 );
+assert_checkequal ( csvStringToDouble("-10.4") , -10.4 );
+assert_checkequal ( csvStringToDouble("10+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("+10+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("-10+10j") , complex(-10, 10) );
+assert_checkequal ( csvStringToDouble("10.+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("+10.+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("-10.+10j") , complex(-10, 10) );
+assert_checkequal ( csvStringToDouble("10.4+10j") , complex(10.4, 10) );
+assert_checkequal ( csvStringToDouble("+10.4+10j") , complex(10.4, 10) );
+assert_checkequal ( csvStringToDouble("-10.4+10j") , complex(-10.4, 10) );
+assert_checkequal ( csvStringToDouble(".4+10j") , complex(.4, 10) );
+assert_checkequal ( csvStringToDouble("+.4+10j") , complex(.4, 10) );
+assert_checkequal ( csvStringToDouble("-.4+10j") , complex(-.4, 10) );
+assert_checkequal ( csvStringToDouble("10+10.4j") , complex(10, 10.4) );
+assert_checkequal ( csvStringToDouble("10.4+10.4j") , complex(10.4, 10.4) );
+assert_checkequal ( csvStringToDouble("+10.4+10.4j") , complex(10.4, 10.4) );
+assert_checkequal ( csvStringToDouble("+10.4-10.4j") , complex(10.4, -10.4) );
+assert_checkequal ( csvStringToDouble("1i") , %i );
+assert_checkequal ( csvStringToDouble("1j") , %i );
+assert_checkequal ( csvStringToDouble("+1j") , %i );
+assert_checkequal ( csvStringToDouble("+1i") , %i );
+assert_checkequal ( csvStringToDouble("-1j") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("-1i") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("10j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("+10j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("-10j") , complex(0, -10) );
+assert_checkequal ( csvStringToDouble("10.j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("+10.j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("-10.j") , complex(0,-10) );
+assert_checkequal ( csvStringToDouble(".4j") , complex(0,.4) );
+assert_checkequal ( csvStringToDouble("+.4j") , complex(0,.4) );
+assert_checkequal ( csvStringToDouble("-.4j") , complex(0,-.4) );
+assert_checkequal ( csvStringToDouble("10.4j") , complex(0,10.4) );
+assert_checkequal ( csvStringToDouble("+10.4j") , complex(0,10.4) );
+assert_checkequal ( csvStringToDouble("-10.4j") , complex(0,-10.4) );
+assert_checkequal ( csvStringToDouble("4e2") , 400 );
+assert_checkequal ( csvStringToDouble("-4e2") , -400 );
+assert_checkequal ( csvStringToDouble("+4e2") , 400 );
+assert_checkequal ( csvStringToDouble("0.4e2") , 40 );
+assert_checkequal ( csvStringToDouble("3e2 + 2e3i") , complex(300, 2000) );
+assert_checkequal ( csvStringToDouble("3e2 - 2e3i") , complex(300, -2000) );
+if ( getos() == "Windows" ) then
+ assert_checkequal ( csvStringToDouble("3e2 - 2d3i") , complex(300, -2000) );
+ assert_checkequal ( csvStringToDouble("3e2 + 2d3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 + 2e3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 - 2e3i") , complex(300, -2000) );
+ assert_checkequal ( csvStringToDouble("3d2 + 2d3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 - 2d3i") , complex(300, -2000) );
+end
+// =============================================================================
+r = csvStringToDouble("3e2 - blabli");
+assert_checkequal ( r , %nan);
+// =============================================================================
+r = csvStringToDouble("3e2 - blabli", %t);
+assert_checkequal ( r , %nan);
+// =============================================================================
+assert_checkequal ( execstr("r = csvStringToDouble(""3e2 - blabli"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+// =============================================================================
+r = csvStringToDouble("-Nan*%i");
+assert_checkequal ( isnan(imag(r)) , %t);
+assert_checkequal ( csvStringToDouble("+%i") , %i );
+assert_checkequal ( csvStringToDouble("-%i") , -%i );
+assert_checkequal ( csvStringToDouble("%i") , %i );
+assert_checkequal ( csvStringToDouble(" 3 + 2*%i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2*%i") , complex(3,- 2) );
+assert_checkequal ( csvStringToDouble(" -3 + 2*%i") , complex(-3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2*%i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("- 3 - 2*%i") , complex(-3,-2) );
+assert_checkequal ( csvStringToDouble("+3 - 2*%i") , complex(+3,-2) );
+assert_checkequal ( csvStringToDouble("+3 + 2*%i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble("+3 - 2*%i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("4+%i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("4-%i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("-4+%i") , complex(-4,1) );
+assert_checkequal ( csvStringToDouble("-4-%i") , complex(-4,-1) );
+assert_checkequal ( csvStringToDouble("+4+%i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("+4-%i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("1*%i") , %i );
+assert_checkequal ( csvStringToDouble("+1*%i") , %i );
+assert_checkequal ( csvStringToDouble("-1*%i") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("3e2 + 2e3*%i") , complex(300, 2000) );
+assert_checkequal ( csvStringToDouble("3e2 - 2e3*%i") , complex(300, -2000) );
+// =============================================================================
+assert_checkequal ( csvStringToDouble('a'), %nan );
+assert_checkequal ( csvStringToDouble('e'), %nan );
+assert_checkequal ( csvStringToDouble('d'), %nan );
+assert_checkequal ( csvStringToDouble('E'), %nan );
+assert_checkequal ( csvStringToDouble('e'), %nan );
+// =============================================================================
+assert_checkequal ( csvStringToDouble("%pi") , %pi );
+assert_checkequal ( csvStringToDouble("-%pi") , -%pi );
+assert_checkequal ( csvStringToDouble("%nan") , %nan );
+assert_checkequal ( csvStringToDouble("%inf") , %inf );
+assert_checkequal ( csvStringToDouble("-%inf") , -%inf );
+assert_checkequal ( csvStringToDouble("+%inf") , %inf );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.tst b/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.tst
new file mode 100755
index 000000000..43e2b5eaf
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csv_stringToDouble.tst
@@ -0,0 +1,203 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+r = csvStringToDouble("-Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("+Nani");
+assert_checkequal ( r , complex(0,%nan) );
+// =============================================================================
+r = csvStringToDouble("-Infi");
+assert_checkequal ( r , complex(0,-%inf) );
+// =============================================================================
+r = csvStringToDouble("Infi");
+assert_checkequal ( r , complex(0,%inf) );
+// =============================================================================
+r = csvStringToDouble("+Infi");
+assert_checkequal ( r , complex(0,%inf) );
+// =============================================================================
+r = csvStringToDouble("Nan-Nani");
+assert_checkequal ( r , complex(%nan,%nan) );
+// =============================================================================
+r = csvStringToDouble("Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("-Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("+Nan-2i");
+assert_checkequal ( r , complex(%nan,-2) );
+// =============================================================================
+r = csvStringToDouble("Nan-Infi");
+assert_checkequal ( r , complex(%nan,-%inf) );
+// =============================================================================
+r = csvStringToDouble("-Inf-2i");
+assert_checkequal ( r , complex(-%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("+Inf-2i");
+assert_checkequal ( r , complex(%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("Inf-2i");
+assert_checkequal ( r , complex(%inf,-2) );
+// =============================================================================
+r = csvStringToDouble("Inf-Infi");
+assert_checkequal ( r , complex(%inf,-%inf) );
+// =============================================================================
+r = csvStringToDouble("Inf+Infi");
+assert_checkequal ( r , complex(%inf,%inf) );
+// =============================================================================
+r = csvStringToDouble("1+Nani");
+assert_checkequal ( r , complex(1,%nan) );
+// =============================================================================
+r = csvStringToDouble("1-Nani");
+assert_checkequal ( r , complex(1,%nan) );
+// =============================================================================
+r = csvStringToDouble("-1-Nani");
+assert_checkequal ( r , complex(-1,%nan) );
+// =============================================================================
+r = csvStringToDouble("1+Infi");
+assert_checkequal ( r , complex(1,%inf) );
+// =============================================================================
+r = csvStringToDouble("1-Infi");
+assert_checkequal ( r , complex(1,-%inf) );
+// =============================================================================
+assert_checkequal ( csvStringToDouble("Nan") , %nan );
+assert_checkequal ( csvStringToDouble("-Nan"), %nan );
+assert_checkequal ( csvStringToDouble("+Nan"), %nan );
+assert_checkequal ( csvStringToDouble("-Inf") , -%inf );
+assert_checkequal ( csvStringToDouble("Inf") , %inf );
+assert_checkequal ( csvStringToDouble("+Inf") , %inf );
+assert_checkequal ( csvStringToDouble("+i") , %i );
+assert_checkequal ( csvStringToDouble("-i") , -%i );
+assert_checkequal ( csvStringToDouble("+j") , %i );
+assert_checkequal ( csvStringToDouble("-j") , -%i );
+assert_checkequal ( csvStringToDouble("i") , %i );
+assert_checkequal ( csvStringToDouble("j") , %i );
+assert_checkequal ( csvStringToDouble(" 3 + 2i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2i") , complex(3,- 2) );
+assert_checkequal ( csvStringToDouble(" -3 + 2i") , complex(-3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("- 3 - 2i") , complex(-3,-2) );
+assert_checkequal ( csvStringToDouble("+3 - 2i") , complex(+3,-2) );
+assert_checkequal ( csvStringToDouble("+3 + 2i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble("+3 - 2i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("4+i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("4-i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("-4+i") , complex(-4,1) );
+assert_checkequal ( csvStringToDouble("-4-i") , complex(-4,-1) );
+assert_checkequal ( csvStringToDouble("+4+i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("+4-i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("10") , 10 );
+assert_checkequal ( csvStringToDouble("+10") , 10 );
+assert_checkequal ( csvStringToDouble("-10") , -10 );
+assert_checkequal ( csvStringToDouble("10.") , 10 );
+assert_checkequal ( csvStringToDouble("+10.") , 10 );
+assert_checkequal ( csvStringToDouble("-10.") , -10 );
+assert_checkequal ( csvStringToDouble(".4") , .4 );
+assert_checkequal ( csvStringToDouble("+.4") , .4 );
+assert_checkequal ( csvStringToDouble("-.4") , -.4 );
+assert_checkequal ( csvStringToDouble("10.4") , 10.4 );
+assert_checkequal ( csvStringToDouble("+10.4") , 10.4 );
+assert_checkequal ( csvStringToDouble("-10.4") , -10.4 );
+assert_checkequal ( csvStringToDouble("10+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("+10+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("-10+10j") , complex(-10, 10) );
+assert_checkequal ( csvStringToDouble("10.+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("+10.+10j") , complex(10, 10) );
+assert_checkequal ( csvStringToDouble("-10.+10j") , complex(-10, 10) );
+assert_checkequal ( csvStringToDouble("10.4+10j") , complex(10.4, 10) );
+assert_checkequal ( csvStringToDouble("+10.4+10j") , complex(10.4, 10) );
+assert_checkequal ( csvStringToDouble("-10.4+10j") , complex(-10.4, 10) );
+assert_checkequal ( csvStringToDouble(".4+10j") , complex(.4, 10) );
+assert_checkequal ( csvStringToDouble("+.4+10j") , complex(.4, 10) );
+assert_checkequal ( csvStringToDouble("-.4+10j") , complex(-.4, 10) );
+assert_checkequal ( csvStringToDouble("10+10.4j") , complex(10, 10.4) );
+assert_checkequal ( csvStringToDouble("10.4+10.4j") , complex(10.4, 10.4) );
+assert_checkequal ( csvStringToDouble("+10.4+10.4j") , complex(10.4, 10.4) );
+assert_checkequal ( csvStringToDouble("+10.4-10.4j") , complex(10.4, -10.4) );
+assert_checkequal ( csvStringToDouble("1i") , %i );
+assert_checkequal ( csvStringToDouble("1j") , %i );
+assert_checkequal ( csvStringToDouble("+1j") , %i );
+assert_checkequal ( csvStringToDouble("+1i") , %i );
+assert_checkequal ( csvStringToDouble("-1j") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("-1i") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("10j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("+10j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("-10j") , complex(0, -10) );
+assert_checkequal ( csvStringToDouble("10.j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("+10.j") , complex(0,10) );
+assert_checkequal ( csvStringToDouble("-10.j") , complex(0,-10) );
+assert_checkequal ( csvStringToDouble(".4j") , complex(0,.4) );
+assert_checkequal ( csvStringToDouble("+.4j") , complex(0,.4) );
+assert_checkequal ( csvStringToDouble("-.4j") , complex(0,-.4) );
+assert_checkequal ( csvStringToDouble("10.4j") , complex(0,10.4) );
+assert_checkequal ( csvStringToDouble("+10.4j") , complex(0,10.4) );
+assert_checkequal ( csvStringToDouble("-10.4j") , complex(0,-10.4) );
+assert_checkequal ( csvStringToDouble("4e2") , 400 );
+assert_checkequal ( csvStringToDouble("-4e2") , -400 );
+assert_checkequal ( csvStringToDouble("+4e2") , 400 );
+assert_checkequal ( csvStringToDouble("0.4e2") , 40 );
+assert_checkequal ( csvStringToDouble("3e2 + 2e3i") , complex(300, 2000) );
+assert_checkequal ( csvStringToDouble("3e2 - 2e3i") , complex(300, -2000) );
+if ( getos() == "Windows" ) then
+ assert_checkequal ( csvStringToDouble("3e2 - 2d3i") , complex(300, -2000) );
+ assert_checkequal ( csvStringToDouble("3e2 + 2d3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 + 2e3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 - 2e3i") , complex(300, -2000) );
+ assert_checkequal ( csvStringToDouble("3d2 + 2d3i") , complex(300, 2000) );
+ assert_checkequal ( csvStringToDouble("3d2 - 2d3i") , complex(300, -2000) );
+end
+// =============================================================================
+r = csvStringToDouble("3e2 - blabli");
+assert_checkequal ( r , %nan);
+// =============================================================================
+r = csvStringToDouble("3e2 - blabli", %t);
+assert_checkequal ( r , %nan);
+// =============================================================================
+assert_checkequal ( execstr("r = csvStringToDouble(""3e2 - blabli"", %f);", "errcatch") , 999 );
+assert_checkequal ( lasterror() , msprintf(_("%s: can not convert data.\n"), "csvStringToDouble") );
+// =============================================================================
+r = csvStringToDouble("-Nan*%i");
+assert_checkequal ( isnan(imag(r)) , %t);
+assert_checkequal ( csvStringToDouble("+%i") , %i );
+assert_checkequal ( csvStringToDouble("-%i") , -%i );
+assert_checkequal ( csvStringToDouble("%i") , %i );
+assert_checkequal ( csvStringToDouble(" 3 + 2*%i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2*%i") , complex(3,- 2) );
+assert_checkequal ( csvStringToDouble(" -3 + 2*%i") , complex(-3,2) );
+assert_checkequal ( csvStringToDouble(" 3 - 2*%i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("- 3 - 2*%i") , complex(-3,-2) );
+assert_checkequal ( csvStringToDouble("+3 - 2*%i") , complex(+3,-2) );
+assert_checkequal ( csvStringToDouble("+3 + 2*%i") , complex(3,2) );
+assert_checkequal ( csvStringToDouble("+3 - 2*%i") , complex(3,-2) );
+assert_checkequal ( csvStringToDouble("4+%i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("4-%i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("-4+%i") , complex(-4,1) );
+assert_checkequal ( csvStringToDouble("-4-%i") , complex(-4,-1) );
+assert_checkequal ( csvStringToDouble("+4+%i") , complex(4,1) );
+assert_checkequal ( csvStringToDouble("+4-%i") , complex(4,-1) );
+assert_checkequal ( csvStringToDouble("1*%i") , %i );
+assert_checkequal ( csvStringToDouble("+1*%i") , %i );
+assert_checkequal ( csvStringToDouble("-1*%i") , complex(0,-1) );
+assert_checkequal ( csvStringToDouble("3e2 + 2e3*%i") , complex(300, 2000) );
+assert_checkequal ( csvStringToDouble("3e2 - 2e3*%i") , complex(300, -2000) );
+// =============================================================================
+assert_checkequal ( csvStringToDouble('a'), %nan );
+assert_checkequal ( csvStringToDouble('e'), %nan );
+assert_checkequal ( csvStringToDouble('d'), %nan );
+assert_checkequal ( csvStringToDouble('E'), %nan );
+assert_checkequal ( csvStringToDouble('e'), %nan );
+// =============================================================================
+assert_checkequal ( csvStringToDouble("%pi") , %pi );
+assert_checkequal ( csvStringToDouble("-%pi") , -%pi );
+assert_checkequal ( csvStringToDouble("%nan") , %nan );
+assert_checkequal ( csvStringToDouble("%inf") , %inf );
+assert_checkequal ( csvStringToDouble("-%inf") , -%inf );
+assert_checkequal ( csvStringToDouble("+%inf") , %inf );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csv_tools.dia.ref b/modules/spreadsheet/tests/unit_tests/csv_tools.dia.ref
new file mode 100755
index 000000000..113c90806
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csv_tools.dia.ref
@@ -0,0 +1,44 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+function y = writereadcycle(x,filename)
+ csvWrite(x,filename);
+ separator = [];
+ decimal=[];
+ conversion ="double";
+ y = csvRead(filename, separator, decimal, conversion);
+endfunction
+// Test write-read cycles
+//
+// =============================================================================
+// Basic.
+K = eye(3, 2) + 0.1;
+filename = fullfile(TMPDIR,"test.csv");
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
+// Numerical issues.
+huge=number_properties("huge");
+tiny=number_properties("tiny");
+tiniest=number_properties("tiniest");
+x1 = nearfloat("succ",1);
+x2 = nearfloat("pred",1);
+K = [
+ %inf %nan huge tiny tiniest x1 x2 0
+ -%inf %nan -huge -tiny -tiniest -x1 -x2 -0
+];
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
+// Complexes and numerical issues in complexes.
+K = [
+ 1+2*%i -1+0.5*huge*%i 2*tiny*%i 1
+ 1+0.1*%i complex(%inf,%nan) complex(%nan,%inf) complex(tiniest,%inf)
+ complex(%inf,tiniest) complex( 0 ,%nan) complex(%nan,0) -1
+];
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/csv_tools.tst b/modules/spreadsheet/tests/unit_tests/csv_tools.tst
new file mode 100755
index 000000000..1947848ab
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/csv_tools.tst
@@ -0,0 +1,45 @@
+// =============================================================================
+// Copyright (C) 2011 - INRIA - Michael Baudin
+// Copyright (C) 2010 - 2011 - INRIA - Allan CORNET
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// =============================================================================
+function y = writereadcycle(x,filename)
+ csvWrite(x,filename);
+ separator = [];
+ decimal=[];
+ conversion ="double";
+ y = csvRead(filename, separator, decimal, conversion);
+endfunction
+
+// Test write-read cycles
+//
+// =============================================================================
+// Basic.
+K = eye(3, 2) + 0.1;
+filename = fullfile(TMPDIR,"test.csv");
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
+// Numerical issues.
+huge=number_properties("huge");
+tiny=number_properties("tiny");
+tiniest=number_properties("tiniest");
+x1 = nearfloat("succ",1);
+x2 = nearfloat("pred",1);
+K = [
+ %inf %nan huge tiny tiniest x1 x2 0
+ -%inf %nan -huge -tiny -tiniest -x1 -x2 -0
+];
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
+// Complexes and numerical issues in complexes.
+K = [
+ 1+2*%i -1+0.5*huge*%i 2*tiny*%i 1
+ 1+0.1*%i complex(%inf,%nan) complex(%nan,%inf) complex(tiniest,%inf)
+ complex(%inf,tiniest) complex( 0 ,%nan) complex(%nan,0) -1
+];
+K2 = writereadcycle(K,filename);
+assert_checkequal ( K , K2 );
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/data.csv b/modules/spreadsheet/tests/unit_tests/data.csv
new file mode 100755
index 000000000..fe756b243
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/data.csv
@@ -0,0 +1 @@
+Inf,Nan
diff --git a/modules/spreadsheet/tests/unit_tests/double_quotes.csv b/modules/spreadsheet/tests/unit_tests/double_quotes.csv
new file mode 100755
index 000000000..5ebb8d368
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/double_quotes.csv
@@ -0,0 +1,5 @@
+Dummy1,Dummy1
+Dummy2,"Dummy2, Dummy2"
+Dummy3,"(""Dummy3"")"
+"""Dummy4"" Dummy4","Dummy4"
+"Dummy5","Dummy5 ""Dummy5"""
diff --git a/modules/spreadsheet/tests/unit_tests/readwrite_csv.dia.ref b/modules/spreadsheet/tests/unit_tests/readwrite_csv.dia.ref
new file mode 100755
index 000000000..35e44c2c8
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/readwrite_csv.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008-2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+ref1 = [ 0 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 ];
+write_csv(ref1, TMPDIR + '/test.csv');
+res = read_csv( TMPDIR + '/test.csv');
+if or(evstr(res) <> ref1) then bugmes();quit;end
+write_csv(ref1, TMPDIR + '/test2.csv', ' ', '.');
+res = read_csv( TMPDIR + '/test2.csv', ' ');
+if or(evstr(res) <> ref1) then bugmes();quit;end
diff --git a/modules/spreadsheet/tests/unit_tests/readwrite_csv.tst b/modules/spreadsheet/tests/unit_tests/readwrite_csv.tst
new file mode 100755
index 000000000..c83f01b8f
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/readwrite_csv.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008-2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+ref1 = [ 0 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 ];
+
+write_csv(ref1, TMPDIR + '/test.csv');
+res = read_csv( TMPDIR + '/test.csv');
+
+if or(evstr(res) <> ref1) then pause, end
+
+write_csv(ref1, TMPDIR + '/test2.csv', ' ', '.');
+res = read_csv( TMPDIR + '/test2.csv', ' ');
+
+if or(evstr(res) <> ref1) then pause, end
diff --git a/modules/spreadsheet/tests/unit_tests/readxls.dia.ref b/modules/spreadsheet/tests/unit_tests/readxls.dia.ref
new file mode 100755
index 000000000..7bbee161d
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/readxls.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+ref1 = [ 0 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 ];
+ref2 = 'Test string 1';
+ref3 = 'Test string 2';
+ref4 = 'Test string 3';
+XLS = readxls(SCI+'/modules/spreadsheet/tests/unit_tests/readxls.xls');
+if type(XLS) <> 17 then bugmes();quit;end;
+if size(XLS(1)) <> [ 10 10 ] then bugmes();quit;end;
+if size(XLS(2)) <> 0 then bugmes();quit;end;
+if size(XLS(3)) <> 0 then bugmes();quit;end;
+Feuil1 = XLS(1);
+if size(Feuil1.value)<> [ 10 10 ] then bugmes();quit;end;
+if size(Feuil1.text)<> [ 10 10 ] then bugmes();quit;end;
+if Feuil1(1:5,1:10) <> ref1 then bugmes();quit;end;
+if Feuil1(8,1) <> ref2 then bugmes();quit;end;
+if Feuil1(9,2) <> ref3 then bugmes();quit;end;
+if Feuil1(10,3) <> ref4 then bugmes();quit;end;
+// =============================================================================
diff --git a/modules/spreadsheet/tests/unit_tests/readxls.tst b/modules/spreadsheet/tests/unit_tests/readxls.tst
new file mode 100755
index 000000000..76323cc1e
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/readxls.tst
@@ -0,0 +1,33 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+ref1 = [ 0 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 ];
+
+ref2 = 'Test string 1';
+ref3 = 'Test string 2';
+ref4 = 'Test string 3';
+
+
+XLS = readxls(SCI+'/modules/spreadsheet/tests/unit_tests/readxls.xls');
+if type(XLS) <> 17 then pause,end;
+if size(XLS(1)) <> [ 10 10 ] then pause,end;
+if size(XLS(2)) <> 0 then pause,end;
+if size(XLS(3)) <> 0 then pause,end;
+
+Feuil1 = XLS(1);
+if size(Feuil1.value)<> [ 10 10 ] then pause,end;
+if size(Feuil1.text)<> [ 10 10 ] then pause,end;
+if Feuil1(1:5,1:10) <> ref1 then pause,end;
+if Feuil1(8,1) <> ref2 then pause,end;
+if Feuil1(9,2) <> ref3 then pause,end;
+if Feuil1(10,3) <> ref4 then pause,end;
+// =============================================================================
+
diff --git a/modules/spreadsheet/tests/unit_tests/readxls.xls b/modules/spreadsheet/tests/unit_tests/readxls.xls
new file mode 100755
index 000000000..bd8051e1a
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/readxls.xls
Binary files differ
diff --git a/modules/spreadsheet/tests/unit_tests/xls_open.dia.ref b/modules/spreadsheet/tests/unit_tests/xls_open.dia.ref
new file mode 100755
index 000000000..511ef4447
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/xls_open.dia.ref
@@ -0,0 +1,29 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+tab_ref = [ ..
+"世界您好", ..
+"азеазея", ..
+"ハロー・ワールド", ..
+"เฮลโลเวิลด์", ..
+"حريات وحقوق", ..
+"프로그램", ..
+"프로그램", ..
+"תוכנית"];
+cd TMPDIR;
+mkdir open_xls_tests;
+cd open_xls_tests;
+origfile = SCI + "/modules/spreadsheet/tests/unit_tests/readxls.xls";
+
+for i = 1 : size(tab_ref, "*")
+ newfile = tab_ref(i) + ".xls";
+ copyfile(origfile, newfile);
+ [fileID, fileStream, SheetNames, SheetPos] = xls_open(newfile);
+ if(fileID == 0) then bugmes();quit;end
+ mclose(fileID);
+end
+cd TMPDIR;
+removedir open_xls_tests;
diff --git a/modules/spreadsheet/tests/unit_tests/xls_open.tst b/modules/spreadsheet/tests/unit_tests/xls_open.tst
new file mode 100755
index 000000000..098f4b806
--- /dev/null
+++ b/modules/spreadsheet/tests/unit_tests/xls_open.tst
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+tab_ref = [ ..
+"世界您好", ..
+"азеазея", ..
+"ハロー・ワールド", ..
+"เฮลโลเวิลด์", ..
+"حريات وحقوق", ..
+"프로그램", ..
+"프로그램", ..
+"תוכנית"];
+
+cd TMPDIR;
+mkdir open_xls_tests;
+cd open_xls_tests;
+origfile = SCI + "/modules/spreadsheet/tests/unit_tests/readxls.xls";
+
+for i = 1 : size(tab_ref, "*")
+ newfile = tab_ref(i) + ".xls";
+ copyfile(origfile, newfile);
+ [fileID, fileStream, SheetNames, SheetPos] = xls_open(newfile);
+ if(fileID == 0) then pause, end
+ mclose(fileID);
+end
+
+cd TMPDIR;
+removedir open_xls_tests;