Line Coverage for Module :
prim_generic_ram_1r1w
| Line No. | Total | Covered | Percent |
TOTAL | | 11 | 11 | 100.00 |
CONT_ASSIGN | 45 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
ALWAYS | 66 | 4 | 4 | 100.00 |
ALWAYS | 77 | 2 | 2 | 100.00 |
44 logic unused_cfg;
45 1/1 assign unused_cfg = ^cfg_i;
Tests: T3
46
47 // Width of internal write mask. Note *_wmask_i input into the module is always assumed
48 // to be the full bit mask.
49 localparam int MaskWidth = Width / DataBitsPerMask;
50
51 logic [Width-1:0] mem [Depth];
52 logic [MaskWidth-1:0] a_wmask;
53 for (genvar k = 0; k < MaskWidth; k++) begin : gen_wmask
54 4/4 assign a_wmask[k] = &a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask];
Tests: T1 T2 T3 | T1 T2 T3 | T1 T2 T3 | T1 T2 T3
55
56 // Ensure that all mask bits within a group have the same value for a write
57 `ASSERT(MaskCheckPortA_A, a_req_i |->
58 a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask] inside {{DataBitsPerMask{1'b1}}, '0},
59 clk_a_i, '0)
60 end
61
62 // Xilinx FPGA specific Two-port RAM coding style
63 // using always instead of always_ff to avoid 'ICPD - illegal combination of drivers' error
64 // thrown due to 'mem' being driven by two always processes below
65 always @(posedge clk_a_i) begin
66 1/1 if (a_req_i) begin
Tests: T1 T2 T3
67 1/1 for (int i=0; i < MaskWidth; i = i + 1) begin
Tests: T5 T6 T7
68 1/1 if (a_wmask[i]) begin
Tests: T5 T6 T7
69 1/1 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
Tests: T5 T6 T7
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
MISSING_ELSE
72 end
73 end
MISSING_ELSE
74 end
75
76 always @(posedge clk_b_i) begin
77 1/1 if (b_req_i) begin
Tests: T1 T2 T3
78 1/1 b_rdata_o <= mem[b_addr_i];
Tests: T5 T7 T8
79 end
MISSING_ELSE
Branch Coverage for Module :
prim_generic_ram_1r1w
| Line No. | Total | Covered | Percent |
Branches |
|
4 |
4 |
100.00 |
IF |
66 |
2 |
2 |
100.00 |
IF |
77 |
2 |
2 |
100.00 |
66 if (a_req_i) begin
-1-
67 for (int i=0; i < MaskWidth; i = i + 1) begin
==>
68 if (a_wmask[i]) begin
69 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
72 end
73 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T6,T7 |
0 |
Covered |
T1,T2,T3 |
77 if (b_req_i) begin
-1-
78 b_rdata_o <= mem[b_addr_i];
==>
79 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T7,T8 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Module :
prim_generic_ram_1r1w
Assertion Details
gen_wmask[0].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
689983143 |
3602777 |
0 |
0 |
T5 |
10685 |
45 |
0 |
0 |
T6 |
31994 |
832 |
0 |
0 |
T7 |
69970 |
832 |
0 |
0 |
T8 |
52959 |
832 |
0 |
0 |
T9 |
84187 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
104766 |
832 |
0 |
0 |
T12 |
223647 |
1860 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
19733 |
1600 |
0 |
0 |
T15 |
188614 |
2843 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
141 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[1].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
689983143 |
3602777 |
0 |
0 |
T5 |
10685 |
45 |
0 |
0 |
T6 |
31994 |
832 |
0 |
0 |
T7 |
69970 |
832 |
0 |
0 |
T8 |
52959 |
832 |
0 |
0 |
T9 |
84187 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
104766 |
832 |
0 |
0 |
T12 |
223647 |
1860 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
19733 |
1600 |
0 |
0 |
T15 |
188614 |
2843 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
141 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[2].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
689983143 |
3602777 |
0 |
0 |
T5 |
10685 |
45 |
0 |
0 |
T6 |
31994 |
832 |
0 |
0 |
T7 |
69970 |
832 |
0 |
0 |
T8 |
52959 |
832 |
0 |
0 |
T9 |
84187 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
104766 |
832 |
0 |
0 |
T12 |
223647 |
1860 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
19733 |
1600 |
0 |
0 |
T15 |
188614 |
2843 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
141 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[3].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
689983143 |
3602777 |
0 |
0 |
T5 |
10685 |
45 |
0 |
0 |
T6 |
31994 |
832 |
0 |
0 |
T7 |
69970 |
832 |
0 |
0 |
T8 |
52959 |
832 |
0 |
0 |
T9 |
84187 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
104766 |
832 |
0 |
0 |
T12 |
223647 |
1860 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
19733 |
1600 |
0 |
0 |
T15 |
188614 |
2843 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
141 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
Line Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_sys2spi_mem.u_mem.gen_generic.u_impl_generic
| Line No. | Total | Covered | Percent |
TOTAL | | 11 | 11 | 100.00 |
CONT_ASSIGN | 45 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
ALWAYS | 66 | 4 | 4 | 100.00 |
ALWAYS | 77 | 2 | 2 | 100.00 |
44 logic unused_cfg;
45 1/1 assign unused_cfg = ^cfg_i;
Tests: T3
46
47 // Width of internal write mask. Note *_wmask_i input into the module is always assumed
48 // to be the full bit mask.
49 localparam int MaskWidth = Width / DataBitsPerMask;
50
51 logic [Width-1:0] mem [Depth];
52 logic [MaskWidth-1:0] a_wmask;
53 for (genvar k = 0; k < MaskWidth; k++) begin : gen_wmask
54 4/4 assign a_wmask[k] = &a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask];
Tests: T1 T2 T3 | T1 T2 T3 | T1 T2 T3 | T1 T2 T3
55
56 // Ensure that all mask bits within a group have the same value for a write
57 `ASSERT(MaskCheckPortA_A, a_req_i |->
58 a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask] inside {{DataBitsPerMask{1'b1}}, '0},
59 clk_a_i, '0)
60 end
61
62 // Xilinx FPGA specific Two-port RAM coding style
63 // using always instead of always_ff to avoid 'ICPD - illegal combination of drivers' error
64 // thrown due to 'mem' being driven by two always processes below
65 always @(posedge clk_a_i) begin
66 1/1 if (a_req_i) begin
Tests: T1 T2 T3
67 1/1 for (int i=0; i < MaskWidth; i = i + 1) begin
Tests: T5 T6 T7
68 1/1 if (a_wmask[i]) begin
Tests: T5 T6 T7
69 1/1 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
Tests: T5 T6 T7
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
==> MISSING_ELSE
72 end
73 end
MISSING_ELSE
74 end
75
76 always @(posedge clk_b_i) begin
77 1/1 if (b_req_i) begin
Tests: T4 T5 T6
78 1/1 b_rdata_o <= mem[b_addr_i];
Tests: T5 T7 T8
79 end
MISSING_ELSE
Branch Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_sys2spi_mem.u_mem.gen_generic.u_impl_generic
| Line No. | Total | Covered | Percent |
Branches |
|
4 |
4 |
100.00 |
IF |
66 |
2 |
2 |
100.00 |
IF |
77 |
2 |
2 |
100.00 |
66 if (a_req_i) begin
-1-
67 for (int i=0; i < MaskWidth; i = i + 1) begin
==>
68 if (a_wmask[i]) begin
69 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
72 end
73 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T6,T7 |
0 |
Covered |
T1,T2,T3 |
77 if (b_req_i) begin
-1-
78 b_rdata_o <= mem[b_addr_i];
==>
79 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T7,T8 |
0 |
Covered |
T4,T5,T6 |
Assert Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_sys2spi_mem.u_mem.gen_generic.u_impl_generic
Assertion Details
gen_wmask[0].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
523949410 |
2207040 |
0 |
0 |
T5 |
9234 |
14 |
0 |
0 |
T6 |
21011 |
832 |
0 |
0 |
T7 |
58789 |
832 |
0 |
0 |
T8 |
28351 |
832 |
0 |
0 |
T9 |
57487 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
87946 |
832 |
0 |
0 |
T12 |
116251 |
832 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
0 |
1600 |
0 |
0 |
T15 |
0 |
1035 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T25 |
0 |
17 |
0 |
0 |
gen_wmask[1].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
523949410 |
2207040 |
0 |
0 |
T5 |
9234 |
14 |
0 |
0 |
T6 |
21011 |
832 |
0 |
0 |
T7 |
58789 |
832 |
0 |
0 |
T8 |
28351 |
832 |
0 |
0 |
T9 |
57487 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
87946 |
832 |
0 |
0 |
T12 |
116251 |
832 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
0 |
1600 |
0 |
0 |
T15 |
0 |
1035 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T25 |
0 |
17 |
0 |
0 |
gen_wmask[2].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
523949410 |
2207040 |
0 |
0 |
T5 |
9234 |
14 |
0 |
0 |
T6 |
21011 |
832 |
0 |
0 |
T7 |
58789 |
832 |
0 |
0 |
T8 |
28351 |
832 |
0 |
0 |
T9 |
57487 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
87946 |
832 |
0 |
0 |
T12 |
116251 |
832 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
0 |
1600 |
0 |
0 |
T15 |
0 |
1035 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T25 |
0 |
17 |
0 |
0 |
gen_wmask[3].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
523949410 |
2207040 |
0 |
0 |
T5 |
9234 |
14 |
0 |
0 |
T6 |
21011 |
832 |
0 |
0 |
T7 |
58789 |
832 |
0 |
0 |
T8 |
28351 |
832 |
0 |
0 |
T9 |
57487 |
832 |
0 |
0 |
T10 |
14410 |
0 |
0 |
0 |
T11 |
87946 |
832 |
0 |
0 |
T12 |
116251 |
832 |
0 |
0 |
T13 |
1582 |
0 |
0 |
0 |
T14 |
0 |
1600 |
0 |
0 |
T15 |
0 |
1035 |
0 |
0 |
T23 |
1282 |
0 |
0 |
0 |
T25 |
0 |
17 |
0 |
0 |
Line Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_spi2sys_mem.u_mem.gen_generic.u_impl_generic
| Line No. | Total | Covered | Percent |
TOTAL | | 11 | 11 | 100.00 |
CONT_ASSIGN | 45 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
CONT_ASSIGN | 54 | 1 | 1 | 100.00 |
ALWAYS | 66 | 4 | 4 | 100.00 |
ALWAYS | 77 | 2 | 2 | 100.00 |
44 logic unused_cfg;
45 1/1 assign unused_cfg = ^cfg_i;
Tests: T3
46
47 // Width of internal write mask. Note *_wmask_i input into the module is always assumed
48 // to be the full bit mask.
49 localparam int MaskWidth = Width / DataBitsPerMask;
50
51 logic [Width-1:0] mem [Depth];
52 logic [MaskWidth-1:0] a_wmask;
53 for (genvar k = 0; k < MaskWidth; k++) begin : gen_wmask
54 4/4 assign a_wmask[k] = &a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask];
Tests: T1 T2 T3 | T1 T2 T3 | T1 T2 T3 | T1 T2 T3
55
56 // Ensure that all mask bits within a group have the same value for a write
57 `ASSERT(MaskCheckPortA_A, a_req_i |->
58 a_wmask_i[k*DataBitsPerMask +: DataBitsPerMask] inside {{DataBitsPerMask{1'b1}}, '0},
59 clk_a_i, '0)
60 end
61
62 // Xilinx FPGA specific Two-port RAM coding style
63 // using always instead of always_ff to avoid 'ICPD - illegal combination of drivers' error
64 // thrown due to 'mem' being driven by two always processes below
65 always @(posedge clk_a_i) begin
66 1/1 if (a_req_i) begin
Tests: T4 T5 T6
67 1/1 for (int i=0; i < MaskWidth; i = i + 1) begin
Tests: T5 T12 T15
68 1/1 if (a_wmask[i]) begin
Tests: T5 T12 T15
69 1/1 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
Tests: T5 T12 T15
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
MISSING_ELSE
72 end
73 end
MISSING_ELSE
74 end
75
76 always @(posedge clk_b_i) begin
77 1/1 if (b_req_i) begin
Tests: T1 T2 T3
78 1/1 b_rdata_o <= mem[b_addr_i];
Tests: T5 T12 T15
79 end
MISSING_ELSE
Branch Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_spi2sys_mem.u_mem.gen_generic.u_impl_generic
| Line No. | Total | Covered | Percent |
Branches |
|
4 |
4 |
100.00 |
IF |
66 |
2 |
2 |
100.00 |
IF |
77 |
2 |
2 |
100.00 |
66 if (a_req_i) begin
-1-
67 for (int i=0; i < MaskWidth; i = i + 1) begin
==>
68 if (a_wmask[i]) begin
69 mem[a_addr_i][i*DataBitsPerMask +: DataBitsPerMask] <=
70 a_wdata_i[i*DataBitsPerMask +: DataBitsPerMask];
71 end
72 end
73 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T12,T15 |
0 |
Covered |
T4,T5,T6 |
77 if (b_req_i) begin
-1-
78 b_rdata_o <= mem[b_addr_i];
==>
79 end
MISSING_ELSE
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T5,T12,T15 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.u_spid_dpram.gen_ram1r1w.u_spi2sys_mem.u_mem.gen_generic.u_impl_generic
Assertion Details
gen_wmask[0].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
166033733 |
1395737 |
0 |
0 |
T5 |
1451 |
31 |
0 |
0 |
T6 |
10983 |
0 |
0 |
0 |
T7 |
11181 |
0 |
0 |
0 |
T8 |
24608 |
0 |
0 |
0 |
T9 |
26700 |
0 |
0 |
0 |
T11 |
16820 |
0 |
0 |
0 |
T12 |
107396 |
1028 |
0 |
0 |
T14 |
19733 |
0 |
0 |
0 |
T15 |
188614 |
1808 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
124 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[1].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
166033733 |
1395737 |
0 |
0 |
T5 |
1451 |
31 |
0 |
0 |
T6 |
10983 |
0 |
0 |
0 |
T7 |
11181 |
0 |
0 |
0 |
T8 |
24608 |
0 |
0 |
0 |
T9 |
26700 |
0 |
0 |
0 |
T11 |
16820 |
0 |
0 |
0 |
T12 |
107396 |
1028 |
0 |
0 |
T14 |
19733 |
0 |
0 |
0 |
T15 |
188614 |
1808 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
124 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[2].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
166033733 |
1395737 |
0 |
0 |
T5 |
1451 |
31 |
0 |
0 |
T6 |
10983 |
0 |
0 |
0 |
T7 |
11181 |
0 |
0 |
0 |
T8 |
24608 |
0 |
0 |
0 |
T9 |
26700 |
0 |
0 |
0 |
T11 |
16820 |
0 |
0 |
0 |
T12 |
107396 |
1028 |
0 |
0 |
T14 |
19733 |
0 |
0 |
0 |
T15 |
188614 |
1808 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
124 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |
gen_wmask[3].MaskCheckPortA_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
166033733 |
1395737 |
0 |
0 |
T5 |
1451 |
31 |
0 |
0 |
T6 |
10983 |
0 |
0 |
0 |
T7 |
11181 |
0 |
0 |
0 |
T8 |
24608 |
0 |
0 |
0 |
T9 |
26700 |
0 |
0 |
0 |
T11 |
16820 |
0 |
0 |
0 |
T12 |
107396 |
1028 |
0 |
0 |
T14 |
19733 |
0 |
0 |
0 |
T15 |
188614 |
1808 |
0 |
0 |
T24 |
1202 |
0 |
0 |
0 |
T25 |
0 |
124 |
0 |
0 |
T27 |
0 |
1326 |
0 |
0 |
T30 |
0 |
73 |
0 |
0 |
T37 |
0 |
1243 |
0 |
0 |
T38 |
0 |
1552 |
0 |
0 |
T39 |
0 |
5901 |
0 |
0 |
T50 |
0 |
4 |
0 |
0 |