Skip to content

Commit e6b0aec

Browse files
andreas-abelcopybara-github
authored andcommitted
Change the format of the libc distribution files such that the overlap probability is in a separate row instead of in the last column.
PiperOrigin-RevId: 647314434 Change-Id: Ie5d0c5e30ddd150b01bbca84cb21bf64d450fe1d
1 parent 00b4c04 commit e6b0aec

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+156
-71
lines changed

fleetbench/common/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ cc_library(
99
linkstatic = 1,
1010
deps = [
1111
"@bazel_tools//tools/cpp/runfiles",
12+
"@com_google_absl//absl/algorithm:container",
1213
"@com_google_absl//absl/flags:flag",
1314
"@com_google_absl//absl/log",
1415
"@com_google_absl//absl/log:check",

fleetbench/common/common.cc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <vector>
2626

2727
#include "tools/cpp/runfiles/runfiles.h"
28+
#include "absl/algorithm/container.h"
2829
#include "absl/flags/flag.h"
2930
#include "absl/log/check.h"
3031
#include "absl/log/log.h"
@@ -99,25 +100,14 @@ std::vector<std::filesystem::path> GetMatchingFiles(absl::string_view dir,
99100
}
100101

101102
std::vector<double> ReadDistributionFile(std::filesystem::path file) {
102-
std::vector<double> distribution;
103-
std::string column;
104-
std::fstream f(file, std::ios_base::in);
105-
while (std::getline(f, column, ',')) {
106-
double d = 0.0;
107-
if (!absl::SimpleAtod(column, &d)) {
108-
std::cerr << "Invalid column: " << column << "\n";
109-
}
110-
distribution.push_back(d);
111-
}
112-
return distribution;
103+
return ConvertLine(ReadCsv(file)[0]);
113104
}
114105

115106
DistributionOverlapProbabilityPair ReadDistributionFileWithOverlapProbability(
116107
std::filesystem::path file) {
117-
std::vector<double> columns = ReadDistributionFile(file);
118-
double overlap_probability = columns.back();
119-
columns.pop_back();
120-
return DistributionOverlapProbabilityPair{columns, overlap_probability};
108+
auto lines = ReadCsv(file);
109+
return DistributionOverlapProbabilityPair{ConvertLine(lines[0]),
110+
ConvertLine(lines[1])[0]};
121111
}
122112

123113
std::vector<std::vector<std::string>> ReadCsv(std::filesystem::path file,
@@ -139,6 +129,16 @@ std::vector<std::vector<std::string>> ReadCsv(std::filesystem::path file,
139129
return lines;
140130
}
141131

132+
std::vector<double> ConvertLine(std::vector<std::string> line) {
133+
std::vector<double> result(line.size());
134+
absl::c_transform(line, result.begin(), [](const std::string& val) {
135+
double d = 0.0;
136+
CHECK(absl::SimpleAtod(val, &d)) << "Invalid column: " << val << "\n";
137+
return d;
138+
});
139+
return result;
140+
}
141+
142142
std::string GetFleetbenchRuntimePath(const absl::string_view path) {
143143
//github.com/bazelbuild/bazel/blob/master/tools/cpp/runfiles/runfiles_src.h
144144
std::string error;

fleetbench/common/common.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ struct DistributionOverlapProbabilityPair {
6666
};
6767

6868
// Similar to ReadDistributionFile(), but for a CSV file that additionally
69-
// contains the overlap probability in the last column. The function returns a
69+
// contains the overlap probability in a second line. The function returns a
7070
// pair consisting of the distribution and the overlap probability.
7171
DistributionOverlapProbabilityPair ReadDistributionFileWithOverlapProbability(
7272
std::filesystem::path file);
@@ -75,7 +75,12 @@ DistributionOverlapProbabilityPair ReadDistributionFileWithOverlapProbability(
7575
// multiple lines. Each line converts to a vector of string, separated by the
7676
// delimiter.
7777
std::vector<std::vector<std::string>> ReadCsv(std::filesystem::path file,
78-
char delimiter);
78+
char delimiter = ',');
79+
80+
// Converts a line in the result of ReadCsv (i.e., a vector of strings) to a
81+
// vector of doubles. Causes a failed CHECK if a string cannot be converted to
82+
// a double.
83+
std::vector<double> ConvertLine(std::vector<std::string> line);
7984

8085
// Returns the runtime path of a runfile in the fleetbench directory.
8186
std::string GetFleetbenchRuntimePath(const absl::string_view path);

fleetbench/common/common_test.cc

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@
1717
#include <fstream>
1818
#include <ostream>
1919
#include <string>
20+
#include <vector>
2021

22+
#include "gmock/gmock.h"
2123
#include "gtest/gtest.h"
2224
#include "absl/flags/flag.h"
2325
#include "absl/strings/str_cat.h"
2426

2527
namespace fleetbench {
2628

29+
using ::testing::DoubleEq;
30+
using ::testing::ElementsAre;
31+
2732
TEST(ReadDistributionFileTest, Numbers) {
2833
std::string path =
2934
absl::StrCat(getenv("TEST_TMPDIR"), "/test1.csv");
@@ -34,10 +39,23 @@ TEST(ReadDistributionFileTest, Numbers) {
3439
file.close();
3540
}
3641
auto result = ReadDistributionFile(path);
37-
EXPECT_EQ(result.size(), 3);
38-
EXPECT_EQ(result[0], 1.1);
39-
EXPECT_EQ(result[1], 2.2);
40-
EXPECT_EQ(result[2], 3.3);
42+
EXPECT_THAT(result, ElementsAre(DoubleEq(1.1), DoubleEq(2.2), DoubleEq(3.3)));
43+
}
44+
45+
TEST(ReadDistributionFileWithOverlapProbabilityTest, Numbers) {
46+
std::string path =
47+
absl::StrCat(getenv("TEST_TMPDIR"), "/test1.csv");
48+
49+
std::ofstream file(path, std::ofstream::out);
50+
if (file.is_open()) {
51+
file << "1.1,2.2" << std::endl;
52+
file << "0.1" << std::endl;
53+
file.close();
54+
}
55+
DistributionOverlapProbabilityPair result =
56+
ReadDistributionFileWithOverlapProbability(path);
57+
EXPECT_THAT(result.distribution, ElementsAre(DoubleEq(1.1), DoubleEq(2.2)));
58+
EXPECT_DOUBLE_EQ(result.overlap_probability, 0.1);
4159
}
4260

4361
TEST(ReadCsvTest, Numbers) {
@@ -76,6 +94,12 @@ TEST(ReadCsvTest, Mixed) {
7694
EXPECT_EQ(result[1][1], "2");
7795
}
7896

97+
TEST(ConvertLineTest, Numbers) {
98+
std::vector<std::string> line = {"1.2345", "2.2345"};
99+
EXPECT_THAT(ConvertLine(line),
100+
ElementsAre(DoubleEq(1.2345), DoubleEq(2.2345)));
101+
}
102+
79103
TEST(RandomTest, Seed) {
80104
absl::SetFlag(&FLAGS_fixed_seed, true);
81105
absl::SetFlag(&FLAGS_seed, 1);
@@ -96,4 +120,9 @@ TEST(DeathTest, SeedFlags) {
96120
"--seed requires --fixed_seed=true");
97121
}
98122

123+
TEST(DeathTest, ConvertLine) {
124+
std::vector<std::string> line = {"1.2345", "xyz"};
125+
ASSERT_DEATH(ConvertLine(line), "Invalid column: xyz");
126+
}
127+
99128
} // namespace fleetbench
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
0.00836695,0.0014443,0.0599133,0.0142437,0.152348,0.00363564,0.00841675,0.0172817,0.0283381,0.0738085,0.0378505,0.0105583,0.00961203,0.01519,0.0354101,0.0162359,0.00991085,0.0046317,0.00901439,0.0284875,0.00971164,0.0350117,0.040241,0.018477,0.0180786,0.00926341,0.0136461,0.00597639,0.00493052,0.00547836,0.012152,0.00517954,0.00816774,0.00433289,0.00249016,0.00318741,0.00488072,0.00921361,0.00293839,0.0142935,0.0315753,0.00283879,0.00587679,0.00388466,0.00707207,0.00742069,0.0090642,0.00219134,0.00129489,0.00572738,0.00806813,0.00124508,0.00249016,0.000398426,0.000796852,0.00169331,0.00293839,0.00139449,0.00129489,0.00194233,0.0401912,0.0014941,0.000996066,0.00702226,0.000498033,0.0015439,0.00423328,0.00562777,0.00229095,0.000398426,0.00433289,0.000498033,0.000498033,0.00029882,0.00293839,0.0014443,9.96066e-05,0.000348623,0.000498033,9.96066e-05,0.00014941,0.000498033,0.00104587,0.0311769,0.01519,9.96066e-05,4.98033e-05,0.00363564,0,0,4.98033e-05,0,0,4.98033e-05,4.98033e-05,0,0,4.98033e-05,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,4.98033e-05,0,0,0,0,0,0,9.96066e-05,0,0,0,0,4.98033e-05,0,0.000199213,0.00014941,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.98033e-05,0.000547809
1+
0.0099692,0.00123215,0.00627275,0.0192103,0.0454215,0.0135536,0.0553346,0.0115934,0.0173621,0.0355643,0.041557,0.0151778,0.0198264,0.0162419,0.0295155,0.0241949,0.0137216,0.0049846,0.00840101,0.041333,0.0066648,0.0697284,0.0792495,0.0271633,0.0235228,0.00700084,0.016746,0.00520863,0.00464856,0.00487258,0.00868104,0.00795295,0.00392047,0.00218426,0.000840101,0.0033044,0.00470456,0.00408849,0.00308037,0.016578,0.0157379,0.00235228,0.00593671,0.00224027,0.00604873,0.00588071,0.00644077,0.00156819,0.00207225,0.00151218,0.00487258,0.000784094,0.00268832,0.00050406,0.00117614,0.00128815,0.00364044,0.000448054,0.000616074,0.000952114,0.0362924,0.00425651,0.00117614,0.00151218,0.000560067,0.00016802,0.0151218,0.0016802,0.00033604,0.00470456,0.00229628,0.00033604,0.00263232,0,0.00140017,0.00324839,0,0,0.00016802,0.000280034,0.000112013,0.0120414,0.000784094,0.0519182,0.0479418,0,0.0112013,5.60067e-05,0,5.60067e-05,0,0,5.60067e-05,0,0,0.00016802,0,5.60067e-05,5.60067e-05,0,0,0,0,0,0,0,0,0,5.60067e-05,0,0,0,0,0,0,0,0,0,5.60067e-05,0,0,0.000112013,0.000448054,0.000784094,0.000224027,0,5.60067e-05,0,0.000112013,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.60067e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.60067e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.60067e-05
2+
5.60067e-05

0 commit comments

Comments
 (0)