From 5b83ad09294335847e9e6cd9f9fd6979e1b1489b Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 16:04:41 +0000 Subject: [PATCH 1/7] Created test vector generation file for exponent and mantissa division --- pipelined/srt/exptestgen | Bin 0 -> 22128 bytes pipelined/srt/exptestgen.c | 121 +++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100755 pipelined/srt/exptestgen create mode 100644 pipelined/srt/exptestgen.c diff --git a/pipelined/srt/exptestgen b/pipelined/srt/exptestgen new file mode 100755 index 0000000000000000000000000000000000000000..0b5085bcb6c9ec2f476716fba8fec66a0110e49f GIT binary patch literal 22128 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 E0R>#^_W%F@ literal 0 HcmV?d00001 diff --git a/pipelined/srt/exptestgen.c b/pipelined/srt/exptestgen.c new file mode 100644 index 000000000..2d5cfb861 --- /dev/null +++ b/pipelined/srt/exptestgen.c @@ -0,0 +1,121 @@ +/* testgen.c */ + +/* Written 2/19/2022 by David Harris + + This program creates test vectors for mantissa and exponent components + of an IEEE floating point divider. + Builds upon program that creates test vectors for mantissa component only. + */ + +/* #includes */ + +#include +#include +#include + +/* Constants */ + +#define ENTRIES 17 +#define RANDOM_VECS 500 +// #define BIAS 1023 // Bias is for double precision + +/* Prototypes */ + +void output(FILE *fptr, int e1, double a, int e2, double b, int r_exp, double r_mantissa); +void printhex(FILE *fptr, double x); +double random_input(void); +double random_input_e(void); + +/* Main */ + +void main(void) +{ + FILE *fptr; + // e1 & e2 are exponents + // a & b are mantissas + // r_mantissa is result of mantissa divsion + // r_exp is result of exponent division + double a, b, r_mantissa, r_exp; + int e1, e2; + double mantissa[ENTRIES] = {1, 1.5, 1.25, 1.125, 1.0625, + 1.75, 1.875, 1.99999, + 1.1, 1.2, 1.01, 1.001, 1.0001, + 1/1.1, 1/1.5, 1/1.25, 1/1.125}; + int exponent[ENTRIES] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; + int i, j; + int bias = 1023; + + if ((fptr = fopen("testvectors","w")) == NULL) { + fprintf(stderr, "Couldn't write testvectors file\n"); + exit(1); + } + + for (i=0; i2) m /= 2; + for (i=0; i Date: Mon, 21 Feb 2022 16:05:43 +0000 Subject: [PATCH 2/7] verilator lint for srt --- pipelined/srt/lint-srt | 1 + 1 file changed, 1 insertion(+) diff --git a/pipelined/srt/lint-srt b/pipelined/srt/lint-srt index 399201be0..8fba602e8 100755 --- a/pipelined/srt/lint-srt +++ b/pipelined/srt/lint-srt @@ -1 +1,2 @@ verilator --lint-only --top-module srt srt.sv -I../config/rv64gc -I../config/shared ../src/generic/*.sv ../src/generic/flop/*.sv +verilator --lint-only --top-module testbench testbench.sv -I../config/rv64gc -I../config/shared ../src/generic/*.sv ../src/generic/flop/*.sv ../src/fpu/unpacking.sv From 08d997d68b36b01e64bea7c7b676aadc76d73279 Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 16:08:09 +0000 Subject: [PATCH 3/7] reverted srt_standford back to original file pre modifications by Udeema --- pipelined/srt/srt_stanford.sv | 92 +++++------------------------------ 1 file changed, 12 insertions(+), 80 deletions(-) diff --git a/pipelined/srt/srt_stanford.sv b/pipelined/srt/srt_stanford.sv index e66cfa3c3..23ab683d5 100644 --- a/pipelined/srt/srt_stanford.sv +++ b/pipelined/srt/srt_stanford.sv @@ -14,49 +14,6 @@ `include "wally-config.vh" -// will also be used for integer division so keep in mind when naming modules/signals - -///////////////// -// srt_divide // -//////////////// -module srt_divide(input logic clk, - input logic req, - input logic sqrt, // 1 to compute sqrt(a), 0 to compute a/b - input logic [63:0] a, b, // input numbers - output logic [54:0] rp, rm, - output logic [10:0] expE); - - // output logic from Unpackers - logic XSgnE, YSgnE, ZSgnE; - logic [10:0] XExpE, YExpE, ZExpE; // exponent - logic [52:0] XManE, YManE, ZManE; - logic XNormE; - logic XNaNE, YNaNE, ZNaNE; - logic XSNaNE, YSNaNE, ZSNaNE; - logic XDenormE, YDenormE, ZDenormE; // denormals - logic XZeroE, YZeroE, ZZeroE; - logic [10:0] BiasE; // currrently hardcoded, will probs be removed - logic XInfE, YInfE, ZInfE; - logic XExpMaxE; // says exponent is all ones, can ignore - - // have Unpackers - // have mantissa divider - // exponent divider - - // hopefully having the .* here works for unpacker --- nope it doesn't - unpack unpacking(a, b, 0, 1'b1, 0, XSgnE, YSgnE, ZSgnE, XExpE, YExpE, ZExpE, XManE, YManE, ZManE, XNormE,XNaNE, YNaNE, ZNaNE,XSNaNE, YSNaNE, ZSNaNE,XDenormE, YDenormE, ZDenormE,XZeroE, YZeroE, ZZeroE,BiasE,XInfE, YInfE, ZInfE,XExpMaxE); - srt srt(clk, req, XManE[51:0], YManE[51:0], rp, rm); - exp exp(XexpE, YExpE, expE); -endmodule - -// exponent module -// first iteration -module exp(input [10:0] e1, e2, - output [10:0] e); // for a 64 bit number, exponent section is 11 bits - assign e = (e1 - e2) + 11'd1023; // bias is hardcoded -endmodule - - ///////// // srt // ///////// @@ -84,12 +41,12 @@ module srt(input logic clk, // When start is asserted, the inputs are loaded into the divider. // Otherwise, the divisor is retained and the partial remainder // is fed back for the next iteration. - mux2_special psmux({psa[54:0], 1'b0}, {4'b0001, a}, req, psn); - flop_special psflop(clk, psn, ps); - mux2_special pcmux({pca[54:0], 1'b0}, 56'b0, req, pcn); - flop_special pcflop(clk, pcn, pc); - mux2_special dmux(d, {4'b0001, b}, req, dn); - flop_special dflop(clk, dn, d); + mux2 psmux({psa[54:0], 1'b0}, {4'b0001, a}, req, psn); + flop psflop(clk, psn, ps); + mux2 pcmux({pca[54:0], 1'b0}, 56'b0, req, pcn); + flop pcflop(clk, pcn, pc); + mux2 dmux(d, {4'b0001, b}, req, dn); + flop dflop(clk, dn, d); // Quotient Selection logic // Given partial remainder, select quotient of +1, 0, or -1 (qp, qz, pm) @@ -99,7 +56,7 @@ module srt(input logic clk, // Divisor Selection logic inv dinv(d, d_b); - mux3_special divisorsel(d_b, 56'b0, d, qp, qz, qm, dsel); + mux3 divisorsel(d_b, 56'b0, d, qp, qz, qm, dsel); // Partial Product Generation csa csa(ps, pc, dsel, qp, psa, pca); @@ -108,7 +65,7 @@ endmodule ////////// // mux2 // ////////// -module mux2_special(input logic [55:0] in0, in1, +module mux2(input logic [55:0] in0, in1, input logic sel, output logic [55:0] out); @@ -118,7 +75,7 @@ endmodule ////////// // flop // ////////// -module flop_special(clk, in, out); +module flop(clk, in, out); input clk; input [55:0] in; output [55:0] out; @@ -204,9 +161,9 @@ module inv(input logic [55:0] in, endmodule ////////// -// mux3_special // +// mux3 // ////////// -module mux3_special(in0, in1, in2, sel0, sel1, sel2, out); +module mux3(in0, in1, in2, sel0, sel1, sel2, out); input [55:0] in0; input [55:0] in1; input [55:0] in2; @@ -316,24 +273,6 @@ module testbench; logic [51:0] b; logic [51:0] r; logic [54:0] rp, rm; // positive quotient digits - - //input logic [63:0] X, Y, Z, - numbers - //input logic FmtE, ---- format, 1 is for double precision, 0 is single - //input logic [2:0] FOpCtrlE, ---- controling operations for FPU, 1 is sqrt, 0 is divide - // all variables are commented in fpu.sv - - // output logic from Unpackers - logic XSgnE, YSgnE, ZSgnE; - logic [10:0] XExpE, YExpE, ZExpE; // exponent - logic [52:0] XManE, YManE, ZManE; - logic XNormE; - logic XNaNE, YNaNE, ZNaNE; - logic XSNaNE, YSNaNE, ZSNaNE; - logic XDenormE, YDenormE, ZDenormE; // denormals - logic XZeroE, YZeroE, ZZeroE; - logic [10:0] BiasE; // currrently hardcoded, will probs be removed - logic XInfE, YInfE, ZInfE; - logic XExpMaxE; // says exponent is all ones, can ignore // Test parameters parameter MEM_SIZE = 40000; @@ -350,15 +289,8 @@ module testbench; logic [51:0] correctr, nextr; integer testnum, errors; - // Unpackers - unpacking unpack(.X({12'b100010000010,a}), .Y({12'b100010000001,b}), .Z(0), .FmtE(1'b1), .FOpCtrlE(0), .*); - // Divider - srt srt(.clk(clk), .req(req), .sqrt(1'b0), .a(XManE[51:0]), .b(YManE[51:0]), .rp(rp),.rm(rm)); - - //srt srt(.clk(clk), .req(req), .sqrt(1'b0), .a(a), .b(b), .rp(rp),.rm(rm)); - - // Divider + unpacker + srt srt(clk, req, a, b, rp, rm); // Final adder converts quotient digits to 2's complement & normalizes finaladd finaladd(rp, rm, r); From c6bd51a707aaf18a038b1074908108aca0751619 Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 16:08:45 +0000 Subject: [PATCH 4/7] Changed Makefile to compile exptestgen instead of testgen --- pipelined/srt/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelined/srt/Makefile b/pipelined/srt/Makefile index 73a0b75fa..db5a11f86 100644 --- a/pipelined/srt/Makefile +++ b/pipelined/srt/Makefile @@ -3,5 +3,5 @@ all: sqrttestgen testgen sqrttestgen: sqrttestgen.c gcc sqrttestgen.c -lm -o sqrttestgen -testgen: testgen.c - gcc testgen.c -lm -o testgen +testgen: exptestgen.c + gcc exptestgen.c -lm -o exptestgen From d1089163a9a06b66acab9cb44a8f8c1f28c5dff8 Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 16:13:30 +0000 Subject: [PATCH 5/7] - Created exponent divsion module - top module includes exponent module now Notes: - may be a better implementation of the exponent module rather than having what I believe are two adders currently --- pipelined/srt/srt.sv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pipelined/srt/srt.sv b/pipelined/srt/srt.sv index 044bac9c1..bc272b011 100644 --- a/pipelined/srt/srt.sv +++ b/pipelined/srt/srt.sv @@ -37,6 +37,8 @@ module srt #(parameter Nf=52) ( input logic Flush, // *** multiple pipe stages // Floating Point Inputs // later add exponents, signs, special cases + input logic [10:0] SrcXExpE, SrcYExpE, // exponents, for double precision exponents are 11 bits + // end of floating point inputs input logic [Nf-1:0] SrcXFrac, SrcYFrac, input logic [`XLEN-1:0] SrcA, SrcB, input logic [1:0] Fmt, // Floats: 00 = 16 bit, 01 = 32 bit, 10 = 64 bit, 11 = 128 bit @@ -45,6 +47,7 @@ module srt #(parameter Nf=52) ( input logic Int, // Choose integer inputss input logic Sqrt, // perform square root, not divide output logic [Nf-1:0] Quot, Rem, // *** later handle integers + output logic [10:0] Exp, // output exponent is hardcoded for 11 bits for double precision output logic [3:0] Flags ); @@ -78,6 +81,9 @@ module srt #(parameter Nf=52) ( // Partial Product Generation csa csa(WS, WC, Dsel, qp, WSA, WCA); + // Exponent division + exp exp(SrcXExpE, SrcYExpE, Exp); + srtpostproc postproc(rp, rm, Quot); endmodule @@ -247,6 +253,14 @@ module csa #(parameter N=56) ( (in2[54:0] & in3[54:0]), cin}; endmodule +////////////// +// exponent // +////////////// +module exp(input [10:0] e1, e2, + output [10:0] e); // for double precision, exponent is 11 bits + assign e = (e1 - e2) + 11'd1023; // bias is hardcoded +endmodule + ////////////// // finaladd // ////////////// From 88060a74f5933f279d20213aa72367ab8e654133 Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 16:24:50 +0000 Subject: [PATCH 6/7] - created new testbench file instead of having it at the bottom of the srt file - uses unpacker to parse 64 bit floating point numbers - updated testbench to read from new testvectors generated by exptestbench Notes: MEM_WIDTH updated to be 64*3 Input numbers and output result is 64 bit number MEM_SIZE set to 60000 --- pipelined/srt/testbench.sv | 66 ++- pipelined/srt/testvectors | 1078 ++++++++++-------------------------- 2 files changed, 339 insertions(+), 805 deletions(-) diff --git a/pipelined/srt/testbench.sv b/pipelined/srt/testbench.sv index 0af3821ec..971a3f997 100644 --- a/pipelined/srt/testbench.sv +++ b/pipelined/srt/testbench.sv @@ -40,33 +40,66 @@ module testbench; logic clk; logic req; logic done; - logic [51:0] a; - logic [51:0] b; - logic [51:0] r; + logic [63:0] a; + logic [63:0] b; + logic [63:0] result; + logic [51:0] r; logic [54:0] rp, rm; // positive quotient digits + logic [10:0] e; // output exponent + // input logic for Unpacker + // input logic [63:0] X, Y, Z, - numbers + // input logic FmtE, ---- format, 1 is for double precision, 0 is single + // input logic [2:0] FOpCtrlE, ---- controling operations for FPU, 1 is sqrt, 0 is divide + // all variables are commented in fpu.sv + + // output logic from Unpacker + logic XSgnE, YSgnE, ZSgnE; + logic [10:0] XExpE, YExpE, ZExpE; // exponent + logic [52:0] XManE, YManE, ZManE; + logic XNormE; + logic XNaNE, YNaNE, ZNaNE; + logic XSNaNE, YSNaNE, ZSNaNE; + logic XDenormE, YDenormE, ZDenormE; // denormals + logic XZeroE, YZeroE, ZZeroE; + logic [10:0] BiasE; // currrently hardcoded, will probs be removed + logic XInfE, YInfE, ZInfE; + logic XExpMaxE; // says exponent is all ones, can ignore + // Test parameters - parameter MEM_SIZE = 40000; - parameter MEM_WIDTH = 52+52+52; + parameter MEM_SIZE = 60000; + parameter MEM_WIDTH = 64+64+64; - `define memr 51:0 - `define memb 103:52 - `define mema 155:104 + `define memr 63:0 + `define memb 127:64 + `define mema 191:128 // Test logicisters logic [MEM_WIDTH-1:0] Tests [0:MEM_SIZE]; // Space for input file logic [MEM_WIDTH-1:0] Vec; // Verilog doesn't allow direct access to a // bit field of an array - logic [51:0] correctr, nextr, diffn, diffp; + logic [63:0] correctr, nextr, diffn, diffp; integer testnum, errors; + // Unpacker + // Note: BiasE will probably get taken out eventually + unpacking unpack(.X({1'b1,a[62:0]}), .Y({1'b1,b[62:0]}), .Z(64'b0), .FmtE(1'b1), .FOpCtrlE(3'b0), + .XSgnE(XSgnE), .YSgnE(YSgnE), .ZSgnE(ZSgnE), .XExpE(XExpE), .YExpE(YExpE), .ZExpE(ZExpE), + .XManE(XManE), .YManE(YManE), .ZManE(ZManE), .XNormE(XNormE), .XNaNE(XNaNE), .YNaNE(YNaNE), .ZNaNE(ZNaNE), + .XSNaNE(XSNaNE), .YSNaNE(YSNaNE), .ZSNaNE(ZSNaNE), .XDenormE(XDenormE), .YDenormE(YDenormE), .ZDenormE(ZDenormE), + .XZeroE(XZeroE), .YZeroE(YZeroE), .ZZeroE(ZZeroE), .BiasE(BiasE), + .XInfE(XInfE), .YInfE(YInfE), .ZInfE(ZInfE), .XExpMaxE(XExpMaxE)); + // Divider srt #(52) srt(.clk, .Start(req), .Stall(1'b0), .Flush(1'b0), - .SrcXFrac(a), .SrcYFrac(b), + .SrcXExpE(XExpE), .SrcYExpE(YExpE), + .SrcXFrac(XManE[51:0]), .SrcYFrac(YManE[51:0]), .SrcA('0), .SrcB('0), .Fmt(2'b00), .W64(1'b0), .Signed(1'b0), .Int(1'b0), .Sqrt(1'b0), - .Quot(r), .Rem(), .Flags()); + .Quot(r), .Rem(), .Exp(e), .Flags()); + + assign result = {1'b0, e, r}; // Counter counter counter(clk, req, done); @@ -100,16 +133,17 @@ module testbench; if (done) begin req <= #5 1; - diffp = correctr - r; - diffn = r - correctr; + diffp = correctr - result; + diffn = result - correctr; if (($signed(diffn) > 1) | ($signed(diffp) > 1)) // check if accurate to 1 ulp begin errors = errors+1; - $display("result was %h, should be %h %h %h\n", r, correctr, diffn, diffp); + $display("result was %h, should be %h %h %h\n", result, correctr, diffn, diffp); $display("failed\n"); + $display(testnum); $stop; end - if (a === 52'hxxxxxxxxxxxxx) + if (a === 64'hxxxxxxxxxxxxxxxx) begin $display("%d Tests completed successfully", testnum); $stop; @@ -121,7 +155,7 @@ module testbench; correctr = nextr; testnum = testnum+1; Vec = Tests[testnum]; - $display("a = %h b = %h",a,b); + $display("a = %h b = %h result = %h",a,b,nextr); a = Vec[`mema]; b = Vec[`memb]; nextr = Vec[`memr]; diff --git a/pipelined/srt/testvectors b/pipelined/srt/testvectors index 112803fe9..c6412a9e6 100644 --- a/pipelined/srt/testvectors +++ b/pipelined/srt/testvectors @@ -1,789 +1,289 @@ -0000000000000_0000000000000_0000000000000 -8000000000000_0000000000000_8000000000000 -4000000000000_0000000000000_4000000000000 -2000000000000_0000000000000_2000000000000 -1000000000000_0000000000000_1000000000000 -c000000000000_0000000000000_c000000000000 -e000000000000_0000000000000_e000000000000 -ffff583a53b8e_0000000000000_ffff583a53b8e -199999999999a_0000000000000_199999999999a -3333333333333_0000000000000_3333333333333 -028f5c28f5c29_0000000000000_028f5c28f5c29 -004189374bc6a_0000000000000_004189374bc6a -00068db8bac71_0000000000000_00068db8bac71 -d1745d1745d17_0000000000000_d1745d1745d17 -5555555555555_0000000000000_5555555555555 -999999999999a_0000000000000_999999999999a -c71c71c71c71c_0000000000000_c71c71c71c71c -0000000000000_8000000000000_5555555555555 -8000000000000_8000000000000_0000000000000 -4000000000000_8000000000000_aaaaaaaaaaaab -2000000000000_8000000000000_8000000000000 -1000000000000_8000000000000_6aaaaaaaaaaab -c000000000000_8000000000000_2aaaaaaaaaaab -e000000000000_8000000000000_4000000000000 -ffff583a53b8e_8000000000000_5554e57c37d09 -199999999999a_8000000000000_7777777777778 -3333333333333_8000000000000_9999999999999 -028f5c28f5c29_8000000000000_58bf258bf258c -004189374bc6a_8000000000000_55acb6f46508d -00068db8bac71_8000000000000_555e124ba3b41 -d1745d1745d17_8000000000000_364d9364d9365 -5555555555555_8000000000000_c71c71c71c71c -999999999999a_8000000000000_1111111111111 -c71c71c71c71c_8000000000000_2f684bda12f68 -0000000000000_4000000000000_999999999999a -8000000000000_4000000000000_3333333333333 -4000000000000_4000000000000_0000000000000 -2000000000000_4000000000000_ccccccccccccd -1000000000000_4000000000000_b333333333333 -c000000000000_4000000000000_6666666666666 -e000000000000_4000000000000_8000000000000 -ffff583a53b8e_4000000000000_99991361dc93e -199999999999a_4000000000000_c28f5c28f5c2a -3333333333333_4000000000000_eb851eb851eb8 -028f5c28f5c29_4000000000000_9db22d0e56042 -004189374bc6a_4000000000000_9a027525460aa -00068db8bac71_4000000000000_99a415f45e0b5 -d1745d1745d17_4000000000000_745d1745d1746 -5555555555555_4000000000000_1111111111111 -999999999999a_4000000000000_47ae147ae147b -c71c71c71c71c_4000000000000_6c16c16c16c16 -0000000000000_2000000000000_c71c71c71c71c -8000000000000_2000000000000_5555555555555 -4000000000000_2000000000000_1c71c71c71c72 -2000000000000_2000000000000_0000000000000 -1000000000000_2000000000000_e38e38e38e38e -c000000000000_2000000000000_8e38e38e38e39 -e000000000000_2000000000000_aaaaaaaaaaaab -ffff583a53b8e_2000000000000_c71bdca59fc0c -199999999999a_2000000000000_f49f49f49f4a0 -3333333333333_2000000000000_1111111111111 -028f5c28f5c29_2000000000000_cba9876543210 -004189374bc6a_2000000000000_c790f3f086b67 -00068db8bac71_2000000000000_c7281864da457 -d1745d1745d17_2000000000000_9dbcc48676f31 -5555555555555_2000000000000_2f684bda12f68 -999999999999a_2000000000000_6c16c16c16c17 -c71c71c71c71c_2000000000000_948b0fcd6e9e0 -0000000000000_1000000000000_e1e1e1e1e1e1e -8000000000000_1000000000000_6969696969697 -4000000000000_1000000000000_2d2d2d2d2d2d3 -2000000000000_1000000000000_0f0f0f0f0f0f1 -1000000000000_1000000000000_0000000000000 -c000000000000_1000000000000_a5a5a5a5a5a5a -e000000000000_1000000000000_c3c3c3c3c3c3c -ffff583a53b8e_1000000000000_e1e143faa9268 -199999999999a_1000000000000_0909090909091 -3333333333333_1000000000000_2121212121212 -028f5c28f5c29_1000000000000_e6b3804d19e6b -004189374bc6a_1000000000000_e25d3e863448b -00068db8bac71_1000000000000_e1ee37f25085c -d1745d1745d17_1000000000000_b6132a7041b61 -5555555555555_1000000000000_4141414141414 -999999999999a_1000000000000_8181818181818 -c71c71c71c71c_1000000000000_ac5701ac5701a -0000000000000_c000000000000_2492492492492 -8000000000000_c000000000000_b6db6db6db6db -4000000000000_c000000000000_6db6db6db6db7 -2000000000000_c000000000000_4924924924925 -1000000000000_c000000000000_36db6db6db6db -c000000000000_c000000000000_0000000000000 -e000000000000_c000000000000_1249249249249 -ffff583a53b8e_c000000000000_2491e945e6b2d -199999999999a_c000000000000_41d41d41d41d5 -3333333333333_c000000000000_5f15f15f15f16 -028f5c28f5c29_c000000000000_277f44c118de6 -004189374bc6a_c000000000000_24dd2f1a9fbe7 -00068db8bac71_c000000000000_2499c689fa081 -d1745d1745d17_c000000000000_09f959c427e56 -5555555555555_c000000000000_8618618618618 -999999999999a_c000000000000_d41d41d41d41e -c71c71c71c71c_c000000000000_0410410410410 -0000000000000_e000000000000_1111111111111 -8000000000000_e000000000000_999999999999a -4000000000000_e000000000000_5555555555555 -2000000000000_e000000000000_3333333333333 -1000000000000_e000000000000_2222222222222 -c000000000000_e000000000000_dddddddddddde -e000000000000_e000000000000_0000000000000 -ffff583a53b8e_e000000000000_1110b796930d4 -199999999999a_e000000000000_2c5f92c5f92c6 -3333333333333_e000000000000_47ae147ae147b -028f5c28f5c29_e000000000000_13cc1e098ead6 -004189374bc6a_e000000000000_1156f8c384071 -00068db8bac71_e000000000000_11180ea2e95ce -d1745d1745d17_e000000000000_f07c1f07c1f07 -5555555555555_e000000000000_6c16c16c16c16 -999999999999a_e000000000000_b4e81b4e81b4f -c71c71c71c71c_e000000000000_e573ac901e573 -0000000000000_ffff583a53b8e_000053e2f1a08 -8000000000000_ffff583a53b8e_80007dd46a70b -4000000000000_ffff583a53b8e_400068dbae089 -2000000000000_ffff583a53b8e_20005e5f4fd48 -1000000000000_ffff583a53b8e_1000592120ba8 -c000000000000_ffff583a53b8e_c00092cd26d8d -e000000000000_ffff583a53b8e_e0009d49850ce -ffff583a53b8e_ffff583a53b8e_0000000000000 -199999999999a_ffff583a53b8e_1999f5e009ca2 -3333333333333_ffff583a53b8e_333397dd21f3c -028f5c28f5c29_ffff583a53b8e_028fb0e2a73e4 -004189374bc6a_ffff583a53b8e_0041dd2fb6fd0 -00068db8bac71_ffff583a53b8e_0006e19dd229c -d1745d1745d17_ffff583a53b8e_d174f59ca00c8 -5555555555555_ffff583a53b8e_5555c52e9780a -999999999999a_ffff583a53b8e_999a1fd1829a6 -c71c71c71c71c_ffff583a53b8e_c71d06e8ca00d -0000000000000_199999999999a_d1745d1745d17 -8000000000000_199999999999a_5d1745d1745d1 -4000000000000_199999999999a_22e8ba2e8ba2e -2000000000000_199999999999a_05d1745d1745d -1000000000000_199999999999a_ee8ba2e8ba2e8 -c000000000000_199999999999a_9745d1745d174 -e000000000000_199999999999a_b45d1745d1745 -ffff583a53b8e_199999999999a_d173c4921d90c -199999999999a_199999999999a_0000000000000 -3333333333333_199999999999a_1745d1745d174 -028f5c28f5c29_199999999999a_d61bed61bed61 -004189374bc6a_199999999999a_d1eb851eb851d -00068db8bac71_199999999999a_d180477e6ade4 -d1745d1745d17_199999999999a_a723f789854a0 -5555555555555_199999999999a_364d9364d9364 -999999999999a_199999999999a_745d1745d1746 -c71c71c71c71c_199999999999a_9dbcc48676f30 -0000000000000_3333333333333_aaaaaaaaaaaab -8000000000000_3333333333333_4000000000000 -4000000000000_3333333333333_0aaaaaaaaaaab -2000000000000_3333333333333_e000000000000 -1000000000000_3333333333333_c555555555556 -c000000000000_3333333333333_7555555555556 -e000000000000_3333333333333_9000000000000 -ffff583a53b8e_3333333333333_aaaa1edb45c4c -199999999999a_3333333333333_d555555555556 -3333333333333_3333333333333_0000000000000 -028f5c28f5c29_3333333333333_aeeeeeeeeeeef -004189374bc6a_3333333333333_ab17e4b17e4b1 -00068db8bac71_3333333333333_aab596de8ca12 -d1745d1745d17_3333333333333_83e0f83e0f83e -5555555555555_3333333333333_1c71c71c71c72 -999999999999a_3333333333333_5555555555556 -c71c71c71c71c_3333333333333_7b425ed097b42 -0000000000000_028f5c28f5c29_faee41e6a7498 -8000000000000_028f5c28f5c29_7c32b16cfd772 -4000000000000_028f5c28f5c29_3cd4e930288df -2000000000000_028f5c28f5c29_1d260511be196 -1000000000000_028f5c28f5c29_0d4e930288df1 -c000000000000_028f5c28f5c29_bb9079a9d2605 -e000000000000_028f5c28f5c29_db3f5dc83cd4f -ffff583a53b8e_028f5c28f5c29_faed9bca398bf -199999999999a_028f5c28f5c29_16cfd7720f354 -3333333333333_028f5c28f5c29_30288df0cac5b -028f5c28f5c29_028f5c28f5c29_0000000000000 -004189374bc6a_028f5c28f5c29_fb70081c635bb -00068db8bac71_028f5c28f5c29_fafb3c1f3a182 -d1745d1745d17_028f5c28f5c29_ccd899003afd0 -5555555555555_028f5c28f5c29_51f42bef1a310 -999999999999a_028f5c28f5c29_958b67ebb907a -c71c71c71c71c_028f5c28f5c29_c29ae53ecd96a -0000000000000_004189374bc6a_ff7d0f16c2e0a -8000000000000_004189374bc6a_7f9dcb5112287 -4000000000000_004189374bc6a_3fae296e39cc6 -2000000000000_004189374bc6a_1fb6587ccd9e5 -1000000000000_004189374bc6a_0fba700417875 -c000000000000_004189374bc6a_bf8d6d33ea848 -e000000000000_004189374bc6a_df853e2556b29 -ffff583a53b8e_004189374bc6a_ff7c677bfebb5 -199999999999a_004189374bc6a_1951951951953 -3333333333333_004189374bc6a_32e4a2a741b9f -028f5c28f5c29_004189374bc6a_024d3c19930d9 -004189374bc6a_004189374bc6a_0000000000000 -00068db8bac71_004189374bc6a_ff8a272e15ca2 -d1745d1745d17_004189374bc6a_d0fd53890e409 -5555555555555_004189374bc6a_54fe0a0f2c95b -999999999999a_004189374bc6a_9930d8df024d5 -c71c71c71c71c_004189374bc6a_c6a80d6990c7a -0000000000000_00068db8bac71_fff2e4e46e7a8 -8000000000000_00068db8bac71_7ff62bab52dbe -4000000000000_00068db8bac71_3ff7cf0ec50c9 -2000000000000_00068db8bac71_1ff8a0c07e24f -1000000000000_00068db8bac71_0ff909995ab11 -c000000000000_00068db8bac71_bff48847e0ab3 -e000000000000_00068db8bac71_dff3b6962792e -ffff583a53b8e_00068db8bac71_fff23d230d9a4 -199999999999a_00068db8bac71_1992644a6ff6a -3333333333333_00068db8bac71_332b5622a8afe -028f5c28f5c29_00068db8bac71_0288bdd4a34fd -004189374bc6a_00068db8bac71_003af9fc0ed8b -00068db8bac71_00068db8bac71_0000000000000 -d1745d1745d17_00068db8bac71_d16872fe35e3c -5555555555555_00068db8bac71_554c989849a70 -999999999999a_00068db8bac71_998f1d838b954 -c71c71c71c71c_00068db8bac71_c710cb75b7895 -0000000000000_d1745d1745d17_199999999999a -8000000000000_d1745d1745d17_a666666666667 -4000000000000_d1745d1745d17_6000000000000 -2000000000000_d1745d1745d17_3cccccccccccd -1000000000000_d1745d1745d17_2b33333333333 -c000000000000_d1745d1745d17_ecccccccccccd -e000000000000_d1745d1745d17_0800000000000 -ffff583a53b8e_d1745d1745d17_19993d5347a5b -199999999999a_d1745d1745d17_35c28f5c28f5d -3333333333333_d1745d1745d17_51eb851eb851f -028f5c28f5c29_d1745d1745d17_1c6a7ef9db22d -004189374bc6a_d1745d1745d17_19e1b089a0275 -00068db8bac71_d1745d1745d17_19a0cf1800a7c -d1745d1745d17_d1745d1745d17_0000000000000 -5555555555555_d1745d1745d17_7777777777777 -999999999999a_d1745d1745d17_c28f5c28f5c2a -c71c71c71c71c_d1745d1745d17_f49f49f49f49f -0000000000000_5555555555555_8000000000000 -8000000000000_5555555555555_2000000000000 -4000000000000_5555555555555_e000000000000 -2000000000000_5555555555555_b000000000000 -1000000000000_5555555555555_9800000000000 -c000000000000_5555555555555_5000000000000 -e000000000000_5555555555555_6800000000000 -ffff583a53b8e_5555555555555_7fff822bbecab -199999999999a_5555555555555_a666666666667 -3333333333333_5555555555555_ccccccccccccd -028f5c28f5c29_5555555555555_83d70a3d70a3e -004189374bc6a_5555555555555_80624dd2f1a9f -00068db8bac71_5555555555555_8009d495182aa -d1745d1745d17_5555555555555_5d1745d1745d2 -5555555555555_5555555555555_0000000000000 -999999999999a_5555555555555_3333333333334 -c71c71c71c71c_5555555555555_5555555555555 -0000000000000_999999999999a_4000000000000 -8000000000000_999999999999a_e000000000000 -4000000000000_999999999999a_9000000000000 -2000000000000_999999999999a_6800000000000 -1000000000000_999999999999a_5400000000000 -c000000000000_999999999999a_1800000000000 -e000000000000_999999999999a_2c00000000000 -ffff583a53b8e_999999999999a_3fff972474538 -199999999999a_999999999999a_6000000000000 -3333333333333_999999999999a_7ffffffffffff -028f5c28f5c29_999999999999a_4333333333333 -004189374bc6a_999999999999a_4051eb851eb84 -00068db8bac71_999999999999a_40083126e978d -d1745d1745d17_999999999999a_22e8ba2e8ba2e -5555555555555_999999999999a_aaaaaaaaaaaaa -999999999999a_999999999999a_0000000000000 -c71c71c71c71c_999999999999a_1c71c71c71c71 -0000000000000_c71c71c71c71c_2000000000000 -8000000000000_c71c71c71c71c_b000000000000 -4000000000000_c71c71c71c71c_6800000000000 -2000000000000_c71c71c71c71c_4400000000000 -1000000000000_c71c71c71c71c_3200000000000 -c000000000000_c71c71c71c71c_f800000000000 -e000000000000_c71c71c71c71c_0e00000000000 -ffff583a53b8e_c71c71c71c71c_1fffa1a0cf180 -199999999999a_c71c71c71c71c_3ccccccccccce -3333333333333_c71c71c71c71c_599999999999a -028f5c28f5c29_c71c71c71c71c_22e147ae147ae -004189374bc6a_c71c71c71c71c_2049ba5e353f8 -00068db8bac71_c71c71c71c71c_20075f6fd21ff -d1745d1745d17_c71c71c71c71c_05d1745d1745d -5555555555555_c71c71c71c71c_8000000000000 -999999999999a_c71c71c71c71c_cccccccccccce -c71c71c71c71c_c71c71c71c71c_0000000000000 -838d071a0e342_2cfc59f8b3f16_49a082c638aeb -4f029e053c0a8_88d711ae235c4_b4a0ece3271c9 -f297e52fca5fa_2bf657ecafd96_a98512f9eeb0d -b3c5678acf15a_39f673ece7d9d_6352102e4640a -7ea8fd51faa3f_1fec3fd87fb10_543bc490cb0f8 -157a2af455e8b_63bec77d8efb2_8f5aa9c461ea7 -46f88df11be24_5e38bc7178e2f_de02518ff11b4 -fbc3f787ef0fe_890f121e243c4_4ab569d997a57 -c4038807100e2_a57f4afe95fd2_1288d4a86eec2 -c46388c7118e2_c7bd8f7b1ef64_fc3c0db5c0f41 -d2ada55b4ab6a_26e44dc89b914_952163b89177d -a01f403e807d0_508ea11d423a8_3c8542614b454 -58ceb19d633ac_eacdd59bab376_67b2c4ee8dfbc -850f0a1e143c2_66b2cd659acb3_15aafa9a4052d -9b5536aa6d54e_c911922324464_ccc482a9a6c6e -ee79dcf3b9e77_deb3bd677acf0_086f8140e09d3 -ddd5bbab7756f_acad595ab2b56_1d5b37e16e3c5 -c227844f089e1_94f729ee53dca_1c90f7056c3ff -63a4c7498e932_5b0ab6156c2ae_0658624bef7e8 -33426684cd09a_d3b1a7634ec6a_505df1d3f1b78 -6a78d4f1a9e35_76a8ed51daa3b_ef5829a397e70 -faabf557eaafe_205e40bc81790_c1ccc2258957c -366e6cdcd9b9b_f55deabbd577a_3d03db89df0ea -bccb7996f32de_68b6d16da2db4_3bac1e9001f3a -c7b58f6b1ed64_c205840b08161_033c49b0072ea -f4f3e9e7d3cfa_07300e601cc04_e7458ab6189b4 -5198a33146629_c1c7838f071e1_804c455579c2e -3e347c68f8d1f_96ed2dda5bb4c_905e9ad06352b -0b1c16382c706_f4bfe97fd2ffa_111c61df4bc8f -51b2a36546ca9_0f321e643cc88_3ec697dd8b4c6 -711ee23dc47b8_ea3fd47fa8ff5_817f4b51aef1e -927f24fe49fc9_1e6c3cd879b0f_67beb22961724 -91dd23ba47749_4086810d021a0_40f6cd64dffd4 -7ef0fde1fbc40_3c9a7934f269e_35a3c4ab1f1b3 -7a1af435e86bd_67f4cfe99fd34_0ce852fd89dc2 -df7dbefb7df70_6d4cda99b5337_5006384057f3c -5bb4b7696ed2e_61c8c39187231_f73412a7f0202 -0b0c16182c306_291c5238a4714_cc315b5b2088e -85b90b7216e43_b25364a6c94d9_cb6b9bf169534 -18da31b46368c_669ccd399a733_90fad7506dd95 -c5ff8bff17fe3_3eac7d58fab1f_6cb5c8ae7a795 -57c2af855f0ac_3ae075c0eb81e_177ba071374b0 -4c40988131026_4df69bed37da7_fd607b0904ec4 -e31fc63f8c7f2_096212c425885_d20ada41d6c2a -a6b14d629ac54_660acc15982b3_2e399a99dd192 -ad215a42b4856_bb8b7716ee2de_ef5c5e2748e33 -f013e027c04f8_3bb87770eee1e_923dca6b59f30 -d6a7ad4f5a9ec_f79bef37de6fc_de7f2e8fb400a -c7558eab1d564_6e76dcedb9db7_3e14e46513b97 -ac915922b2456_cf339e673cce8_d9b7aa9bed9f7 -28a45148a2914_47a68f4d1e9a4_cf8b6269a6fff -22a445488a911_dd3bba7774eee_37d0a8b5fce1c -c00d801b00360_353e6a7cd4f9b_72e8dbe5def6a -23d447a88f512_4b6a96d52daa6_c2d7a9ad4c41c -cd859b0b36167_380c7018e031c_7aa02c18d7d1b -9027204e409c8_b7316e62dcc5c_d27ce580270df -32926524ca499_fd65facbf597e_34233a1906bfd -40028005000a0_6e3cdc79b8f37_bf5f9320a4186 -c15982b305660_dc65b8cb7196e_e2ee52292b278 -e511ca2394472_fa63f4c7e98fd_ea715edac7509 -6538ca7194e32_6ea4dd49ba937_f2d7a8effa805 -208c411882310_752aea55d4aba_8be60428bbcdb -3ce279c4f389e_fc6df8dbf1b7e_3f1c277ac926a -a71f4e3e9c7d4_9aaf355e6abce_07c0ce55c58a2 -3dec7bd8f7b1f_7472e8e5d1cba_b50b8e69c4a11 -ca3b947728ee5_142c285850b0a_a8c3128c04a9f -79f4f3e9e7d3d_27104e209c414_47eb3b20c609b -3ee87dd0fba20_f1ebe3d7c7af9_47ecd9096e767 -9d313a6274c4e_fcf9f9f3f3e7e_9fa5969ddde22 -7a2ef45de8bbd_ccb9997332e66_a445af00e1996 -be837d06fa0e0_6176c2ed85db1_43646a3e4403c -7adaf5b5eb6be_86e30dc61b8c4_f03d907f0efb5 -191c32386470d_981f303e607cc_60a90d7f12e32 -58e0b1c16382c_24b2496492c92_2da39d62040b9 -c78f8f1f1e3e4_b6036c06d80db_0a4176105d842 -7236e46dc8db9_b45f68bed17da_b2603b8c18750 -186630cc6198c_f67becf7d9efb_1db5955bc96be -8d231a46348c6_bd817b02f605f_c8697bbb99686 -943b287650eca_a34b46968d2d2_ed9b4b5915f61 -c81b9037206e4_301a6034c0698_7ff5e5d9a4b66 -4d569aad355a7_486690cd219a4_03d95cf345712 -af1b5e36bc6d8_4afc95f92bf26_4d70007bc146c -90bd217a42f48_6b1ed63dac7b6_1a855bf8e7dd2 -4e7c9cf939f27_71cce399c7339_cf1b757a501f1 -90d121a243448_7ce8f9d1f3a3e_0d60ff3a676de -9b4d369a6d34e_6a74d4e9a9d35_227fbe5016ddf -216242c485891_4186830d061a1_ccd142460b129 -0926124c24985_fa23f447e88fd_0c37e42e47f36 -1d503aa07540f_60c8c19183230_9e142bed1c14a -a58f4b1e963d3_59b6b36d66dad_3829ee931bdfa -8d951b2a36547_5bc0b7816f02e_24aeae5edd06a -90c1218243048_79c2f385e70bd_0f94ec8426a0f -29e653cca7995_9d7f3afe75fce_70dd7e45f1330 -2c125824b0496_8e011c0238047_8204833d1f2e7 -4ace959d2b3a6_df45be8b7d170_61657c7030ace -d5c7ab8f571eb_d84bb097612ec_fd45d6f93dc6e -e541ca8395072_98433086610cc_30477c50e4409 -8a6314c6298c5_2b0e561cac396_519b1e972c72a -a7ab4f569ead4_b0c5618ac3158_f53b5aadcc06d -438a87150e2a2_1b5036a06d40e_24597c9801866 -d09fa13f427e8_30fc61f8c3f18_85ff47547f906 -6c5cd8b9b1736_5a12b425684ad_0d87835a1c635 -d6d7adaf5b5ec_232846508ca12_9dfcf6b831d81 -433e867d0cfa2_2d605ac0b5817_129349ec50fdb -7adaf5b5eb6be_6152c2a5854b1_127fcbd4b4f63 -813d027a04f40_80b5016a02d40_005a80b700811 -5a16b42d685ad_868d0d1a1a344_c5b61a26024de -1ee03dc07b80f_85010a0214042_7994b2736d2df -9b6d36da6db4e_bb9f773eee7de_dad757b532090 -8e8f1d1e3a3c8_5818b0316062c_2884d9bc7e5d3 -cd4d9a9b35366_974b2e965d2cc_21f2725bbaefe -445488a911522_abb15762aec56_8443358ca6e8f -8d591ab235646_c9f793ef27de5_bc3a975592739 -e341c6838d072_e3d7c7af8f5f2_ff614414ffcb2 -116e22dc45b89_ccf399e733ce6_2fb6221648f6f -e849d093a1274_a4e549ca93952_28fd72be99708 -2a46548ca9195_4d249a4934926_ca696952447a3 -2a905520aa415_4900920124024_d0a18f60946de -d78baf175e2ec_894d129a25344_32edf1293a076 -094e129c25385_350a6a14d429a_b78a93320a4db -056e0adc15b83_5baeb75d6ebae_80fbd2da9eb39 -9f193e327c650_85210a4214842_1115b7402e61d -8bc917922f246_27564eac9d594_5711babc13575 -d2c7a58f4b1ea_0888111022204_c3b9becfa23f3 -06a40d481a903_60ccc19983330_7d282d4eba182 -9dc73b8e771cf_05380a7014e03_9582e7dbcca3a -a06740ce819d0_ea4bd497a92f5_b2d60c6f05a12 -5ff2bfe57fcb0_babd757aeaf5e_970152d880fb8 -6554caa995533_fb75f6ebedd7e_68870b8b4a360 -98e731ce639cc_1cc039807300e_6f9de3e3eeb8a -38ba7174e2e9c_cc97992f325e6_5ba1f62fade09 -dee3bdc77b8f0_bcfd79faf3f5e_13808cf384b8c -037c06f80df02_bd537aa6f54de_2a5595b836538 -6b18d631ac636_5caeb95d72bae_0a954087d4680 -34326864d0c9a_2ee25dc4bb898_047d8462783c0 -1386270c4e18a_1d943b287650f_edf911068c5d6 -28bc5178a2f14_c9cb9397272e5_4bdecbdecbdec -0a5414a829505_ca6794cf299e5_2977814bbc0a6 -995932b26564c_6710ce219c434_23d9856c2db29 -3aa27544ea89d_2ecc5d98bb317_0a01c88e32b05 -9d433a86750ce_54f6a9ed53daa_36487aaafac18 -9aeb35d66bace_f6cfed9fdb3fc_a26d6b80ae214 -60c8c19183230_2f345e68bcd18_29dc5dbf86d64 -4cd299a5334a6_0dde1bbc37787_3bb85176f36a6 -24de49bc93792_02ac05580ab01_21d7d6fd41500 -e285c50b8a172_f541ea83d507a_ecdd1118f74a4 -a03b407680ed0_f4a3e947d28fa_a9ad081e2b97f -a18b4316862d1_0a04140828105_91d2a2067b23b -59eeb3dd67bad_25764aec95d93_2dc5affcba861 -1b2436486c90e_328a6514ca299_d8eae2e673183 -157c2af855f0b_06de0dbc1b783_0e3c5a067b88b -f21be437c86f9_eb6dd6dbadb76_037ad126ca43e -e871d0e3a1c74_dd99bb337666f_05d0045af0d1c -26204c4098813_2bfa57f4afe96_f60325a16e1e4 -117622ec45d89_a6a94d529aa54_4b4374a1972f5 -bca37946f28de_1a38347068e0d_93545af7a8a20 -28f651eca3d94_180e301c6038c_0f745dc177b56 -1f283e507ca10_064e0c9c19383_184145017aaf8 -c327864f0c9e2_f4fbe9f7d3efa_cd131d6e548a6 -07240e481c904_a5874b0e961d3_3f9e38327c076 -1ba837506ea0e_6d8cdb19b6337_8d4c54c332579 -4f4a9e953d2a8_04c2098413082_492c6cfa5ad0b -e2a3c5478a8f2_c2038407080e1_128f5c28f5c29 -827104e209c41_2a7054e0a9c15_4b7d0c41eb1aa -c34f869f0d3e2_e17fc2ff85ff0_dfe6368c4868e -7fe2ffc5ff8c0_e009c01380270_9972593cc04eb -bc1b7836f06de_3c2a7854f0a9e_67982711bcf1d -0d361a6c34d87_9b0136026c04e_4f5d31a90a2a7 -e03fc07f80ff0_8107020e041c0_3f4fcca2c71e9 -adab5b56b6ad7_fd49fa93f527e_aff4e0d68472a -9ad335a66b4ce_7f10fe21fc440_128d06353ee3a -96f92df25be4c_e53fca7f94ff2_ad68b32dec986 -0b6c16d82db06_e203c407880f1_1c0edf120edf1 -1bb437686ed0e_85270a4e149c2_754376232242a -942f285e50bca_028a05140a281_9036f4e41e92a -6316c62d8c5b2_7a24f449e893d_e0c8907fded3a -316462c8c5919_8205040a08141_950f250fb99e4 -c6678ccf199e3_5ab8b5716ae2d_4f81d4dcfabeb -b2a16542ca85a_e9add35ba6b75_c671322b496d1 -abc35786af0d6_b4ad695ad2b5a_f58c4ba570d08 -6d48da91b5237_055a0ab415683_65cdfb4930e2c -36846d08da11b_f295e52bca57a_3edf2c94581b9 -80b9017202e40_31ba6374c6e99_422550ba50a63 -a50d4a1a94352_20c2418483090_7548ebd48ebd5 -43d287a50f4a2_5606ac0d581ab_e4bff1c74706b -b425684ad095a_09c2138427085_a421b7451e1a8 -f41fe83fd07fa_c137826f04de0_1d02e96d3bc26 -dfd5bfab7f570_a24d449a89351_25a87dbb3226e -3e587cb0f961f_a2c345868b0d2_85399e7da18c2 -d9b9b37366e6d_3cc47988f311e_7ed902df7393d -b8917122e245c_56d6adad5b5ac_48f9b0139a064 -0cda19b433686_7c28f851f0a3e_6a17134018947 -e5c1cb8397073_3e067c0cf819f_8704bded82a5d -870b0e161c2c4_7e94fd29fa53f_05a96574b33ae -dae5b5cb6b96e_588cb1196232c_60d925e959757 -1fb43f687ed10_372c6e58dcb1c_d9623b2bde16b -1d903b207640f_5cfab9f573eae_a2f5cc6b61161 -34386870d0e1a_6fa2df45be8b8_ad40acb29de66 -d40ba817502ea_827d04fa09f41_360579a085a36 -d1cba397472e9_6924d249a4934_4a2ee86f6d59c -dee1bdc37b870_b6876d0eda1dc_178e86ba2c6c3 -a4bf497e92fd2_94d929b25364a_0a0daf3f0d7df -f407e80fd01fa_760aec15d82bb_563a640e499ea -85670ace159c2_5bd6b7ad6f5ae_1e96fe7e56982 -5366a6cd4d9aa_0240048009001_5071a1388349b -fa6bf4d7e9afd_6e9add35ba6b7_61a24b49a6a8a -2cfc59f8b3f16_28cc5198a3314_039cab91d58f2 -88a1114222844_94032806500ca_f1930288df0ca -506ca0d941b28_5780af015e02c_f573152a3b1f4 -286650cca1994_6fc2df85bf0b8_9ca65fb79a5da -3e1e7c3cf879f_33926724ce49a_08c7591d148c7 -b87170e2e1c5c_385c70b8e171c_68f8b1b27c1a9 -31d263a4c7499_6c52d8a5b14b6_adc8ed28b6596 -c6338c6718ce3_d49fa93f527ea_f03e242cd49cb -3ebc7d78faf1f_016202c405881_3d06179f84a99 -83a307460e8c2_5892b125624ac_1ffe839948c3d -15162a2c5458b_b47768eed1dda_4509d0c3c285d -42a6854d0a9a1_59fab3f567ead_dd7a05c7e706d -893f127e24fc4_de7fbcff79fef_a4c7545318809 -4ddc9bb937727_144a28945128a_35581cf4bc722 -744ae895d12ba_606ac0d581ab0_0e70190fde388 -76f6ededdbdbc_d41ba837506ea_9a1f7b1a81ec4 -06220c4418883_e75fcebf9d7f4_1360bde37cb68 -32986530ca619_a2234446888d1_776b38b5d721c -2118423084610_3c6478c8f191e_d3d35eda7b6ec -99a9335266a4d_a5b54b6a96d53_f15f9245801b5 -d6ffadff5bfec_d7b1af635ec6c_ff3ec8bce8698 -282c5058a0b14_36ae6d5cdab9b_e8172cf29f5ef -9fc33f867f0d0_6f4cde99bd338_21c6f7456c12a -919d233a46749_16fa2df45be8c_708930e4f521a -6182c305860b1_b95d72bae575c_9a15f5b6a26b6 -82c5058a0b142_cb7f96ff2dfe6_aef61a194c44b -e227c44f889f1_19c833906720d_b60a34efa74e0 -a90f521ea43d4_8c99193232646_125f2eb18b9de -ba7574eae9d5d_7382e705ce0ba_30e367052b119 -d767aecf5d9ec_c6198c3318663_09c180358ee29 -62b2c5658acb1_d533aa6754cea_830d556c9d00e -a08f411e823d0_9eb13d627ac50_01271725446ef -70b4e169c2d38_397a72f4e5e9d_2d1a0e8c01f08 -3ef07de0fbc20_7ef8fdf1fbe40_aa64b316b912e -9f753eea7dd50_12a025404a809_8347eb156782f -2202440488091_0fda1fb43f688_11191a47a11f4 -b837706ee0ddc_d9d5b3ab6756d_dbac8acdbd8d8 -f915f22be457c_a8935126a24d4_308b4973215a2 -f511ea23d447a_59dcb3b96772d_72e1b429fbbb7 -93ad275a4eb4a_a429485290a52_ebe96fc1783f8 -f50bea17d42fa_ed57daafb55f6_03ff51a432f3b -6f60dec1bd838_96592cb25964b_cee5d45c79a73 -d9bdb37b66f6d_686ad0d5a1ab4_507e14773e436 -4b26964d2c9a6_d823b047608ec_671bb8b264b82 -a65b4cb6996d3_e603cc07980f3_bcf0329161f9b -9839307260e4c_63aec75d8ebb2_25d0d53af124c -7850f0a1e143c_3086610cc2198_3c5a0156ff471 -206040c081810_77ceef9ddf3bc_88e1e8c651e53 -b16162c2c5858_fe11fc23f847f_b3051ffc1c376 -b9db73b6e76dd_faf3f5e7ebcfe_be419603b96d5 -ab335666accd6_b827704ee09dc_f0ee9d5986a39 -60a2c145828b0_15a42b485690b_45261d769fd29 -0c7418e831d06_06ee0ddc1bb83_0560c6247b796 -8d5b1ab6356c6_fc7bf8f7f1efe_901a6eab66a13 -5768aed15da2c_d7f1afe35fc6c_748e3526e888e -218e431c86391_6194c32986531_a349e171715a3 -ca07940f281e5_184430886110c_a25f365b6a73c -c1a5834b06961_85930b26164c3_27799d0465095 -278c4f189e314_da4fb49f693ed_3f0841a58ab93 -f41fe83fd07fa_6008c01180230_6bb112ccc53ca -839d073a0e742_1ef43de87bd10_59cd13d0cca36 -de7fbcff79fef_d781af035e06c_03cbe4a1aeb36 -a6d14da29b454_fa59f4b3e967d_ab88ca653092a -f79fef3fde7fc_80e501ca03940_4ef83098bb71b -24d449a893512_4c129825304a6_c37e4a1b45a01 -87850f0a1e144_de85bd0b7a170_a2e91dc9d707e -bc017802f005e_c2e585cb0b962_f82ce3c43953d -4cbc997932f26_96832d065a0cc_a31477a7d52cf -16682cd059a0b_63f0c7e18fc32_9078ec39f76ce -1f2c3e587cb10_98d331a6634cc_67a58376b46ce -847f08fe11fc2_4d7a9af535ea7_2a3c1e9c8f763 -e875d0eba1d74_acb15962b2c56_23b0e458ffb4c -c9239247248e4_ed17da2fb45f6_daaacbe508e21 -c9c39387270e5_5d98bb317662f_4f353eeff3d36 -8f451e8a3d148_6162c2c5858b1_213d4e5494261 -c7258e4b1c964_bfbb7f76feee0_043d40b38a91b -a0ef41de83bd0_3f427e84fd0a0_4e523150ca12d -d06ba0d741ae8_03fc07f80ff02_c94d81c9e32e9 -77e6efcddf9bc_7296e52dca5b9_03ab814771f3a -7f78fef1fde40_5362a6c54d8aa_214157f936076 -3fc67f8cff1a0_726ee4ddc9bb9_b9fb87882e0b8 -6422c845908b2_ea1bd437a86f5_740b08dd15903 -e18fc31f863f1_80cb0196032c0_406122bde7c20 -357c6af8d5f1b_e9e3d3c7a78f5_437435908f300 -30c26184c3098_2dca5b94b7297_0284b494c51f7 -c0bd817b02f60_dc0db81b7036e_e29fcf7756c52 -d1ffa3ff47fe9_d66bacd759aeb_fb2fe853ac1fa -ed8fdb1fb63f7_5aecb5d96bb2e_6c3499d61c546 -f313e627cc4fa_56baad755aeab_74c8a781f2f99 -afe95fd2bfa58_daddb5bb6b76e_d1afc3afb8e77 -6c94d929b2536_a7994f329e654_b8aa8b3d603fe -3f6a7ed4fdaa0_0aa815502aa05_32a6a579ef92f -64fcc9f993f32_9fe33fc67f8d0_b77ce238c94a8 -6c2ad855b0ab6_c39187230e462_9ce701a02074f -0d401a8035007_9133226644cc8_579c22efb03cb -691ed23da47b4_00b8017002e00_681bfc1ac4f7f -8ee11dc23b848_f817f02fe05fc_9522b782e064e -e3dfc7bf8f7f2_d629ac5358a6b_077739e69eeb8 -c38d871b0e362_f7cbef97df2fc_cae7d09d464ce -c215842b08561_df39be737ce70_e0dd90710d716 -ce339c6738ce7_d969b2d365a6c_f3dff9ea9495e -5c3ab87570eae_1c9839307260e_393db5f107e80 -2d9c5b38b6717_46ac8d591ab23_d8b7d2664e939 -8e0d1c1a38347_b9b97372e6e5d_cd60efcb7a1a4 -6084c10982130_7822f045e08bc_dfd9e2901f4f0 -744ae895d12ba_b1cf639ec73d9_b76503d859a09 -b32d665accb5a_0ede1dbc3b787_9b4a795ca3735 -301e603cc0798_cc439887310e6_524d97b57772c -4e7a9cf539ea7_d1bfa37f46fe9_6fb1cf3be7c7b -87f30fe61fcc4_e8afd15fa2bf4_9aa5d2252544c -208e411c82390_061a0c3418683_19d68c97462c6 -bdbf7b7ef6fdf_125624ac49589_9ff455cb898b2 -b6d56daadb55c_9bf937f26fe4e_10b0df02ed6e3 -72eee5ddcbbba_531aa6354c6aa_18075c5d24734 -a1ab435686ad1_e5d3cba7974f3_b82b793b6184e -f1b3e367c6cf9_bdf37be6f7cdf_1db54c87e9530 -796af2d5e5abd_13c027804f00a_5e62a0dc43833 -b3d767aecf5da_a8e551caa3954_0698422a042bb -1d083a107420e_2a345468a8d15_e9624a918e3c4 -7f1cfe39fc740_8e851d0a3a148_ec34c6e1c5b14 -4228845108a21_ac3b5876b0ed6_812d4dcf89edf -ef15de2bbc578_8edd1dba3b748_3dc1df22b985d -eebfdd7fbaff8_b125624ac4958_2468be6d34524 -c47588eb11d62_07f60fec1fd84_b6d0113715e5d -f417e82fd05fa_9dcb3b96772cf_3563f9bc5ebc7 -d1eda3db47b69_3dc87b90f721f_7757c78ea950d -038007000e002_393e727ce4f9d_a827bd7e6f887 -de8bbd177a2f0_89ad135a26b45_37306ea1e4f64 -7454e8a9d153a_5506aa0d541aa_1780198614f30 -557eaafd55fab_096212c425885_496bae7c339c2 -539aa7354e6aa_c0d581ab03560_8365d5fa8dfb3 -1b8837106e20e_457e8afd15fa3_bdfe67027211f -d519aa335466a_c1bd837b06f61_0b0520a7c82de -61bec37d86fb1_c7658ecb1d964_8db6b77336845 -bdef7bdef7bdf_c4f389e713ce2_f811cdc4955aa -cdef9bdf37be7_16c02d805b00b_a83bfbd6a48dc -e0afc15f82bf0_85f90bf217e43_3b8caf9639ad7 -d077a0ef41de8_167a2cf459e8b_aafa572991f84 -42f685ed0bda2_605cc0b981730_d5480367db43a -7f96ff2dfe5c0_39387270e4e1d_3983929aa4b4f -0482090412082_04f609ec13d82_ff1c675046636 -d04fa09f413e8_854b0a96152c2_3154fa249f100 -9fc73f8e7f1d0_4a9095212a425_41fdfaa9dc253 -84b1096212c42_e02bc05780af0_9e74edb8fd625 -9c0f381e703ce_522ea45d48ba9_37ec9a0128bfa -a7c14f829f054_997332e665ccc_08f1a88b1e212 -490a9215242a4_b6bf6d7edafdc_7ffa2a3fb13a5 -eec7dd8fbb1f8_ad515aa2b5456_270903bb4b265 -9bed37da6fb4e_005200a401480_9b696f0d4bd85 -d825b04b6096c_b6876d0eda1dc_13a0138e90115 -c6018c0318063_12d425a84b509_a6e6db365b033 -dfb7bf6f7edf0_07dc0fb81f704_d16da8ff1cf6a -9cc939927324e_d049a09341268_c734b4bd0261d -a0a5414a82950_e517ca2f945f2_b7c187101256e -6b88d711ae236_a6774cee99dd3_b8943d2aa2fdb -3cba7974f2e9e_5376a6ed4ddaa_ddb5a525e26c4 -466a8cd519aa3_4030806100c20_04fa7bfe2d0ff -e145c28b85170_79a6f34de69bd_463dcb50a333e -7712ee25dc4bc_11fe23fc47f89_5e717eda9c6af -c16582cb05960_07400e801d004_b50505a13a5b5 -1ab235646ac8d_fa61f4c3e987d_1dd504f2f0368 -5de4bbc97792f_9bb7376e6edce_b31e8e55e8147 -89ab135626ac5_ad835b06b60d7_d545705a992ed -729ae535ca6b9_a4d549aa93552_c2e40a529c2e4 -a097412e825d0_246c48d891b12_6cb3b7bf0d0e9 -6138c27184e30_acbb5976b2ed6_a5d3075eecb95 -82f105e20bc42_c7cd8f9b1f364_b2a5ff7275f9d -71a0e341c6839_8f471e8e3d1c8_d9faee41e6a74 -ef25de4bbc978_8e1b1c36386c7_3e6702cb167cc -bfcb7f96ff2e0_8f211e423c848_1f36c17f3eef1 -bc237846f08de_c5618ac315862_f59002e4d6bb3 -2f0c5e18bc318_c21f843f087e1_58b51373fb0f2 -98833106620cc_c06980d301a60_d2713aca9d4c3 -3b007600ec01e_cd4d9a9b35366_5d9ec9147a36e -a31346268c4d2_1f7a3ef47de90_75303a546efb8 -fdd3fba7f74ff_685ed0bda17b4_6a2bfa733234a -f4f1e9e3d3c7a_ec8fd91fb23f6_045b60cb7b2c1 -441a8835106a2_a0a1414282850_8e4b2fc05342e -b52b6a56d4ada_430e861d0c3a2_5a6d2f75ea2ec -06360c6c18d83_537ea6fd4dfaa_8b725f9a935a5 -cdc79b8f371e7_baff75feebfde_0ada89325bc26 -1f283e507ca10_d86fb0df61bec_373473ff7df26 -da6db4db69b6d_4fc89f913f228_69b3c520810a1 -98df31be637cc_5272a4e549ca9_3544b130d610f -6870d0e1a1c34_fa5ff4bfe97fd_6c71d91640c2a -6618cc3198633_a107420e841d0_b7a5d5e42a035 -207440e881d10_b70b6e16dc2dc_5062d5f644fcf -e1bfc37f86ff1_68a2d145a28b4_55f914248f0a7 -f179e2f3c5e78_2e905d20ba417_a4ea676644e4b -ebb3d767aecf6_2aac5558aab15_a57339f8b3699 -d577aaef55dea_baf375e6ebcde_0f5330a82fae7 -fb2bf657ecafe_e4f3c9e793cf2_0bbab674dd52d -477a8ef51dea4_ffa9ff53fea80_47b19a381bdcf -fe91fd23fa480_30a06140c2818_ad11d6ba80c08 -033a06740ce82_cd539aa7354e6_1fb36b2345f50 -60cac195832b0_58bab17562eac_05fccc21b270f -262e4c5c98b93_88f911f223e44_7f48f044a5e64 -0c26184c30986_6016c02d805b0_85efa9a7d0a5a -4a24944928925_ceb99d733ae68_6d4ca188f4293 -c29f853f0a7e2_6ecedd9dbb3b8_3a7edf0e2a770 -b16162c2c5858_8809101220244_1aff9635dd376 -a3c347868f0d2_9f3d3e7a7cf50_02c9f15906ae4 -1c30386070c0e_2d665accb5997_e2c31f481b131 -38007000e001c_a27544ea89d51_7dbf15610f2ce -5ffcbff97ff30_6b96d72dae5b6_efa991f5db3b6 -d989b3136626d_34386870d0e1a_894efdc987e33 -57eeafdd5fbac_e457c8af915f2_6b925af68f63f -d2a1a5434a86a_d671ace359c6b_fbd9c10da491a -46fc8df91bf24_429c85390a721_0378c63d0435b -097612ec25d85_cc27984f309e6_275edddcd4014 -438a87150e2a2_5a40b4816902d_de6aa461cdeb7 -9187230e461c9_cbfd97fb2ff66_beed57afe43e0 -c47b88f711ee2_8b4916922d246_250aef27ed423 -fa61f4c3e987d_621ec43d887b1_6e12c61bb8624 -e7c9cf939f274_208e411c82390_b0c1304fa0676 -b415682ad055a_79c8f391e723d_2781522657272 -8aa5154a2a946_e203c407880f1_a331ece131ecf -60f4c1e983d30_062e0c5c18b83_58a2f250775f4 -cb0396072c0e6_926324c6498c9_2406ae2a77c4e -6d00da01b4036_430086010c022_2149ea4406c2f -0abe157c2af85_906b20d641ac8_5512d742e97ba -c2b5856b0ad62_845b08b6116c2_291a4e7cb6d93 -0c2a185430a86_5398a7314e62a_944ddc09deefa -f561eac3d587a_0e441c8839107_daeab959545b4 -402a805500aa0_fc5bf8b7f16fe_42757ecbcc920 -b9017202e405c_eba3d747ae8f6_cb44cce776023 -ddcdbb9b7736f_afc95f92bf258_1b486759ba44e -ff99ff33fe680_3cb07960f2c1e_9d8f517d4182e -db5fb6bf6d7ee_f6dfedbfdb7fc_e40008253a23b -940b2816502ca_f4fbe9f7d3efa_9ced8e44b2eae -610ac215842b0_d939b27364e6c_7df81d0b4c1b0 -8a6b14d629ac5_80d501aa03540_066083383d3e8 -cce999d333a66_eb41d683ad076_e05fc1db02106 -5de0bbc17782f_4a5094a129425_0f29690634d61 -e09fc13f827f0_07ee0fdc1fb84_d22ef40abafea -13f227e44fc8a_95b92b7256e4b_5c3a6d0379b29 -307060e0c1c18_ee01dc03b8077_3b86fa53edaf1 -3d667accf599f_ad895b12b6257_7a55e8bf0eea1 -6bdcd7b9af736_78a8f151e2a3c_ee9abe67da520 -2c9c5938b2716_d5e3abc7578eb_478d0ab1345f1 -97b32f665eccc_abd557aaaf556_e7e7e0b277aac -395a72b4e569d_ff85ff0bfe180_39a52fa6ba07d -d1afa35f46be9_4bd697ad2f5a6_67421e5a62571 -6a32d465a8cb5_b2496492c9259_ab0317189693f -b5896b12d625b_38ac7158e2b1c_663b2b3f68efe -5b50b6a16d42e_27164e2c9c594_2d4f5e6a69996 -fb97f72fee5fe_44a8895112a22_903f939334948 -bad775aeeb5de_095e12bc25785_ab359673dba45 -68e0d1c1a3834_beb17d62fac60_9da3811285f99 -32b46568cad19_d80fb01f603ec_4ca7458292601 -a8b35166a2cd4_67fccff99ff34_2e05089e02a23 -180030006000c_5e0cbc197832f_998af91a8749b -27be4f7c9ef94_0d421a8435087_192e59d97e37a -b7cd6f9adf35c_3a307460e8c1d_66595ce558b1d -88b3116622cc4_7b74f6e9edd3e_08ef20c4d5ae2 -99833306660cd_eeb7dd6fbadf8_a7d15ca74ef4d -ca47948f291e5_07f80ff01fe04_bc71ce01fc324 -8eb71d6e3adc8_703ce079c0f38_1530238b17fda -b6e16dc2db85c_6460c8c191832_3b43c4660793a -e885d10ba2174_ac35586ab0d56_240eed822904c -b5a96b52d6a5b_f5a1eb43d687b_beb509d81ae39 -aa6554caa9955_fee5fdcbfb980_ab50b21378e08 -95212a425484a_66cccd999b334_210e3e0ac2272 -128425084a109_10d821b043608_019196de0245c -673ace759ceb4_af455e8abd158_aa7932ef4a6dc -4fa29f453e8a8_13da27b44f68a_377b0e1fba654 -06ee0ddc1bb83_447c88f911f22_9edf0ad46a7c4 -bc6178c2f185e_d76daedb5db6c_e29fe28a29bcf -5f5cbeb97d730_af255e4abc958_a14116c826db1 -781af035e06bc_acc35986b30d6_c11e99bfd03bc -0c5c18b831706_3bec77d8efb1e_b2ea6e4bbabd9 -b5456a8ad515a_9235246a48d49_165148ad170c6 -6c92d925b24b6_ffb7ff6ffee00_6cc625698dab0 -95432a86550ca_9e3b3c7678ecf_f4ea00808ce93 -bd137a26f44de_e751cea39d474_d39df99f3f54f -e9bdd37ba6f75_21e443c887911_b07c30284ac9f -5670ace159c2b_0aac15582ab05_48bc5782c75df -b37566eacdd5a_7ad6f5adeb5be_26429593bab10 -a35746ae8d5d2_fb95f72bee57e_a6fcda06e545d -b6a76d4eda9dc_0cb4196832d06_a1ea6dd96dadb -e8a7d14fa29f4_47ec8fd91fb24_7d7a5e0facc23 -fcdbf9b7f36fe_5a26b44d689ad_785525038c357 -7702ee05dc0bc_e75dcebb9d774_89f75314eac99 -9c3f387e70fce_b54b6a96d52da_e2ac5fcab9b16 -5df8bbf177e2f_cc95992b32566_850a1665f81f7 -9c7b38f671ece_7faeff5dfebc0_1336deab6027b -388a7114e229c_5202a405480a9_d96b8ce030793 -5112a225444a8_71c8e391c7239_d2b5183c88cc1 -2b485690ad216_ba017402e805d_5aad01f0f330a -0130026004c01_e1edc3db87b71_113c45ac1389f -abf757eeafdd6_7a9af535ea6bd_21604b0e84524 -350c6a18d431a_82c905920b242_9918ede81ed1a -2a8c5518aa315_8cbf197e32fc6_8146816fcd820 -80b3016602cc0_915922b245648_eac2cca581d9f +4000000000000000_4000000000000000_3ff0000000000000 +4018000000000000_4000000000000000_4008000000000000 +4024000000000000_4000000000000000_4014000000000000 +4032000000000000_4000000000000000_4022000000000000 +4041000000000000_4000000000000000_4031000000000000 +405c000000000000_4000000000000000_404c000000000000 +406e000000000000_4000000000000000_405e000000000000 +407ffff583a53b8e_4000000000000000_406ffff583a53b8e +408199999999999a_4000000000000000_407199999999999a +4093333333333333_4000000000000000_4083333333333333 +40a028f5c28f5c29_4000000000000000_409028f5c28f5c29 +40b004189374bc6a_4000000000000000_40a004189374bc6a +40c00068db8bac71_4000000000000000_40b00068db8bac71 +40dd1745d1745d17_4000000000000000_40cd1745d1745d17 +40e5555555555555_4000000000000000_40d5555555555555 +40f999999999999a_4000000000000000_40e999999999999a +410c71c71c71c71c_4000000000000000_40fc71c71c71c71c +4000000000000000_4018000000000000_3fe5555555555555 +4018000000000000_4018000000000000_3ff0000000000000 +4024000000000000_4018000000000000_400aaaaaaaaaaaab +4032000000000000_4018000000000000_4018000000000000 +4041000000000000_4018000000000000_4026aaaaaaaaaaab +405c000000000000_4018000000000000_4032aaaaaaaaaaab +406e000000000000_4018000000000000_4044000000000000 +407ffff583a53b8e_4018000000000000_4055554e57c37d09 +408199999999999a_4018000000000000_4067777777777778 +4093333333333333_4018000000000000_4079999999999999 +40a028f5c28f5c29_4018000000000000_40858bf258bf258c +40b004189374bc6a_4018000000000000_40955acb6f46508d +40c00068db8bac71_4018000000000000_40a555e124ba3b41 +40dd1745d1745d17_4018000000000000_40b364d9364d9365 +40e5555555555555_4018000000000000_40cc71c71c71c71c +40f999999999999a_4018000000000000_40d1111111111111 +410c71c71c71c71c_4018000000000000_40e2f684bda12f68 +4000000000000000_4024000000000000_3fd999999999999a +4018000000000000_4024000000000000_3fe3333333333333 +4024000000000000_4024000000000000_3ff0000000000000 +4032000000000000_4024000000000000_400ccccccccccccd +4041000000000000_4024000000000000_401b333333333333 +405c000000000000_4024000000000000_4026666666666666 +406e000000000000_4024000000000000_4038000000000000 +407ffff583a53b8e_4024000000000000_40499991361dc93e +408199999999999a_4024000000000000_405c28f5c28f5c2a +4093333333333333_4024000000000000_406eb851eb851eb8 +40a028f5c28f5c29_4024000000000000_4079db22d0e56042 +40b004189374bc6a_4024000000000000_4089a027525460aa +40c00068db8bac71_4024000000000000_40999a415f45e0b5 +40dd1745d1745d17_4024000000000000_40a745d1745d1746 +40e5555555555555_4024000000000000_40b1111111111111 +40f999999999999a_4024000000000000_40c47ae147ae147b +410c71c71c71c71c_4024000000000000_40d6c16c16c16c16 +4000000000000000_4032000000000000_3fcc71c71c71c71c +4018000000000000_4032000000000000_3fd5555555555555 +4024000000000000_4032000000000000_3fe1c71c71c71c72 +4032000000000000_4032000000000000_3ff0000000000000 +4041000000000000_4032000000000000_400e38e38e38e38e +405c000000000000_4032000000000000_4018e38e38e38e39 +406e000000000000_4032000000000000_402aaaaaaaaaaaab +407ffff583a53b8e_4032000000000000_403c71bdca59fc0c +408199999999999a_4032000000000000_404f49f49f49f4a0 +4093333333333333_4032000000000000_4051111111111111 +40a028f5c28f5c29_4032000000000000_406cba9876543210 +40b004189374bc6a_4032000000000000_407c790f3f086b67 +40c00068db8bac71_4032000000000000_408c7281864da457 +40dd1745d1745d17_4032000000000000_4099dbcc48676f31 +40e5555555555555_4032000000000000_40a2f684bda12f68 +40f999999999999a_4032000000000000_40b6c16c16c16c17 +410c71c71c71c71c_4032000000000000_40c948b0fcd6e9e0 +4000000000000000_4041000000000000_3fbe1e1e1e1e1e1e +4018000000000000_4041000000000000_3fc6969696969697 +4024000000000000_4041000000000000_3fd2d2d2d2d2d2d3 +4032000000000000_4041000000000000_3fe0f0f0f0f0f0f1 +4041000000000000_4041000000000000_3ff0000000000000 +405c000000000000_4041000000000000_400a5a5a5a5a5a5a +406e000000000000_4041000000000000_401c3c3c3c3c3c3c +407ffff583a53b8e_4041000000000000_402e1e143faa9268 +408199999999999a_4041000000000000_4030909090909091 +4093333333333333_4041000000000000_4042121212121212 +40a028f5c28f5c29_4041000000000000_405e6b3804d19e6b +40b004189374bc6a_4041000000000000_406e25d3e863448b +40c00068db8bac71_4041000000000000_407e1ee37f25085c +40dd1745d1745d17_4041000000000000_408b6132a7041b61 +40e5555555555555_4041000000000000_4094141414141414 +40f999999999999a_4041000000000000_40a8181818181818 +410c71c71c71c71c_4041000000000000_40bac5701ac5701a +4000000000000000_405c000000000000_3fa2492492492492 +4018000000000000_405c000000000000_3fbb6db6db6db6db +4024000000000000_405c000000000000_3fc6db6db6db6db7 +4032000000000000_405c000000000000_3fd4924924924925 +4041000000000000_405c000000000000_3fe36db6db6db6db +405c000000000000_405c000000000000_3ff0000000000000 +406e000000000000_405c000000000000_4001249249249249 +407ffff583a53b8e_405c000000000000_4012491e945e6b2d +408199999999999a_405c000000000000_40241d41d41d41d5 +4093333333333333_405c000000000000_4035f15f15f15f16 +40a028f5c28f5c29_405c000000000000_404277f44c118de6 +40b004189374bc6a_405c000000000000_40524dd2f1a9fbe7 +40c00068db8bac71_405c000000000000_4062499c689fa081 +40dd1745d1745d17_405c000000000000_40709f959c427e56 +40e5555555555555_405c000000000000_4088618618618618 +40f999999999999a_405c000000000000_409d41d41d41d41e +410c71c71c71c71c_405c000000000000_40a0410410410410 +4000000000000000_406e000000000000_3f91111111111111 +4018000000000000_406e000000000000_3fa999999999999a +4024000000000000_406e000000000000_3fb5555555555555 +4032000000000000_406e000000000000_3fc3333333333333 +4041000000000000_406e000000000000_3fd2222222222222 +405c000000000000_406e000000000000_3fedddddddddddde +406e000000000000_406e000000000000_3ff0000000000000 +407ffff583a53b8e_406e000000000000_4001110b796930d4 +408199999999999a_406e000000000000_4012c5f92c5f92c6 +4093333333333333_406e000000000000_40247ae147ae147b +40a028f5c28f5c29_406e000000000000_40313cc1e098ead6 +40b004189374bc6a_406e000000000000_4041156f8c384071 +40c00068db8bac71_406e000000000000_40511180ea2e95ce +40dd1745d1745d17_406e000000000000_406f07c1f07c1f07 +40e5555555555555_406e000000000000_4076c16c16c16c16 +40f999999999999a_406e000000000000_408b4e81b4e81b4f +410c71c71c71c71c_406e000000000000_409e573ac901e573 +4000000000000000_407ffff583a53b8e_3f8000053e2f1a08 +4018000000000000_407ffff583a53b8e_3f980007dd46a70b +4024000000000000_407ffff583a53b8e_3fa400068dbae089 +4032000000000000_407ffff583a53b8e_3fb20005e5f4fd48 +4041000000000000_407ffff583a53b8e_3fc1000592120ba8 +405c000000000000_407ffff583a53b8e_3fdc00092cd26d8d +406e000000000000_407ffff583a53b8e_3fee0009d49850ce +407ffff583a53b8e_407ffff583a53b8e_3ff0000000000000 +408199999999999a_407ffff583a53b8e_4001999f5e009ca2 +4093333333333333_407ffff583a53b8e_401333397dd21f3c +40a028f5c28f5c29_407ffff583a53b8e_402028fb0e2a73e4 +40b004189374bc6a_407ffff583a53b8e_4030041dd2fb6fd0 +40c00068db8bac71_407ffff583a53b8e_4040006e19dd229c +40dd1745d1745d17_407ffff583a53b8e_405d174f59ca00c8 +40e5555555555555_407ffff583a53b8e_4065555c52e9780a +40f999999999999a_407ffff583a53b8e_407999a1fd1829a6 +410c71c71c71c71c_407ffff583a53b8e_408c71d06e8ca00d +4000000000000000_408199999999999a_3f7d1745d1745d17 +4018000000000000_408199999999999a_3f85d1745d1745d1 +4024000000000000_408199999999999a_3f922e8ba2e8ba2e +4032000000000000_408199999999999a_3fa05d1745d1745d +4041000000000000_408199999999999a_3fbee8ba2e8ba2e8 +405c000000000000_408199999999999a_3fc9745d1745d174 +406e000000000000_408199999999999a_3fdb45d1745d1745 +407ffff583a53b8e_408199999999999a_3fed173c4921d90c +408199999999999a_408199999999999a_3ff0000000000000 +4093333333333333_408199999999999a_4001745d1745d174 +40a028f5c28f5c29_408199999999999a_401d61bed61bed61 +40b004189374bc6a_408199999999999a_402d1eb851eb851d +40c00068db8bac71_408199999999999a_403d180477e6ade4 +40dd1745d1745d17_408199999999999a_404a723f789854a0 +40e5555555555555_408199999999999a_405364d9364d9364 +40f999999999999a_408199999999999a_406745d1745d1746 +410c71c71c71c71c_408199999999999a_4079dbcc48676f30 +4000000000000000_4093333333333333_3f6aaaaaaaaaaaab +4018000000000000_4093333333333333_3f74000000000000 +4024000000000000_4093333333333333_3f80aaaaaaaaaaab +4032000000000000_4093333333333333_3f9e000000000000 +4041000000000000_4093333333333333_3fac555555555556 +405c000000000000_4093333333333333_3fb7555555555556 +406e000000000000_4093333333333333_3fc9000000000000 +407ffff583a53b8e_4093333333333333_3fdaaaa1edb45c4c +408199999999999a_4093333333333333_3fed555555555556 +4093333333333333_4093333333333333_3ff0000000000000 +40a028f5c28f5c29_4093333333333333_400aeeeeeeeeeeef +40b004189374bc6a_4093333333333333_401ab17e4b17e4b1 +40c00068db8bac71_4093333333333333_402aab596de8ca12 +40dd1745d1745d17_4093333333333333_40383e0f83e0f83e +40e5555555555555_4093333333333333_4041c71c71c71c72 +40f999999999999a_4093333333333333_4055555555555556 +410c71c71c71c71c_4093333333333333_4067b425ed097b42 +4000000000000000_40a028f5c28f5c29_3f5faee41e6a7498 +4018000000000000_40a028f5c28f5c29_3f67c32b16cfd772 +4024000000000000_40a028f5c28f5c29_3f73cd4e930288df +4032000000000000_40a028f5c28f5c29_3f81d260511be196 +4041000000000000_40a028f5c28f5c29_3f90d4e930288df1 +405c000000000000_40a028f5c28f5c29_3fabb9079a9d2605 +406e000000000000_40a028f5c28f5c29_3fbdb3f5dc83cd4f +407ffff583a53b8e_40a028f5c28f5c29_3fcfaed9bca398bf +408199999999999a_40a028f5c28f5c29_3fd16cfd7720f354 +4093333333333333_40a028f5c28f5c29_3fe30288df0cac5b +40a028f5c28f5c29_40a028f5c28f5c29_3ff0000000000000 +40b004189374bc6a_40a028f5c28f5c29_400fb70081c635bb +40c00068db8bac71_40a028f5c28f5c29_401fafb3c1f3a182 +40dd1745d1745d17_40a028f5c28f5c29_402ccd899003afd0 +40e5555555555555_40a028f5c28f5c29_40351f42bef1a310 +40f999999999999a_40a028f5c28f5c29_404958b67ebb907a +410c71c71c71c71c_40a028f5c28f5c29_405c29ae53ecd96a +4000000000000000_40b004189374bc6a_3f4ff7d0f16c2e0a +4018000000000000_40b004189374bc6a_3f57f9dcb5112287 +4024000000000000_40b004189374bc6a_3f63fae296e39cc6 +4032000000000000_40b004189374bc6a_3f71fb6587ccd9e5 +4041000000000000_40b004189374bc6a_3f80fba700417875 +405c000000000000_40b004189374bc6a_3f9bf8d6d33ea848 +406e000000000000_40b004189374bc6a_3fadf853e2556b29 +407ffff583a53b8e_40b004189374bc6a_3fbff7c677bfebb5 +408199999999999a_40b004189374bc6a_3fc1951951951953 +4093333333333333_40b004189374bc6a_3fd32e4a2a741b9f +40a028f5c28f5c29_40b004189374bc6a_3fe024d3c19930d9 +40b004189374bc6a_40b004189374bc6a_3ff0000000000000 +40c00068db8bac71_40b004189374bc6a_400ff8a272e15ca2 +40dd1745d1745d17_40b004189374bc6a_401d0fd53890e409 +40e5555555555555_40b004189374bc6a_40254fe0a0f2c95b +40f999999999999a_40b004189374bc6a_4039930d8df024d5 +410c71c71c71c71c_40b004189374bc6a_404c6a80d6990c7a +4000000000000000_40c00068db8bac71_3f3fff2e4e46e7a8 +4018000000000000_40c00068db8bac71_3f47ff62bab52dbe +4024000000000000_40c00068db8bac71_3f53ff7cf0ec50c9 +4032000000000000_40c00068db8bac71_3f61ff8a0c07e24f +4041000000000000_40c00068db8bac71_3f70ff909995ab11 +405c000000000000_40c00068db8bac71_3f8bff48847e0ab3 +406e000000000000_40c00068db8bac71_3f9dff3b6962792e +407ffff583a53b8e_40c00068db8bac71_3fafff23d230d9a4 +408199999999999a_40c00068db8bac71_3fb1992644a6ff6a +4093333333333333_40c00068db8bac71_3fc332b5622a8afe +40a028f5c28f5c29_40c00068db8bac71_3fd0288bdd4a34fd +40b004189374bc6a_40c00068db8bac71_3fe003af9fc0ed8b +40c00068db8bac71_40c00068db8bac71_3ff0000000000000 +40dd1745d1745d17_40c00068db8bac71_400d16872fe35e3c +40e5555555555555_40c00068db8bac71_401554c989849a70 +40f999999999999a_40c00068db8bac71_402998f1d838b954 +410c71c71c71c71c_40c00068db8bac71_403c710cb75b7895 +4000000000000000_40dd1745d1745d17_3f2199999999999a +4018000000000000_40dd1745d1745d17_3f3a666666666667 +4024000000000000_40dd1745d1745d17_3f46000000000000 +4032000000000000_40dd1745d1745d17_3f53cccccccccccd +4041000000000000_40dd1745d1745d17_3f62b33333333333 +405c000000000000_40dd1745d1745d17_3f7ecccccccccccd +406e000000000000_40dd1745d1745d17_3f80800000000000 +407ffff583a53b8e_40dd1745d1745d17_3f919993d5347a5b +408199999999999a_40dd1745d1745d17_3fa35c28f5c28f5d +4093333333333333_40dd1745d1745d17_3fb51eb851eb851f +40a028f5c28f5c29_40dd1745d1745d17_3fc1c6a7ef9db22d +40b004189374bc6a_40dd1745d1745d17_3fd19e1b089a0275 +40c00068db8bac71_40dd1745d1745d17_3fe19a0cf1800a7c +40dd1745d1745d17_40dd1745d1745d17_3ff0000000000000 +40e5555555555555_40dd1745d1745d17_4007777777777777 +40f999999999999a_40dd1745d1745d17_401c28f5c28f5c2a +410c71c71c71c71c_40dd1745d1745d17_402f49f49f49f49f +4000000000000000_40e5555555555555_3f18000000000000 +4018000000000000_40e5555555555555_3f22000000000000 +4024000000000000_40e5555555555555_3f3e000000000000 +4032000000000000_40e5555555555555_3f4b000000000000 +4041000000000000_40e5555555555555_3f59800000000000 +405c000000000000_40e5555555555555_3f65000000000000 +406e000000000000_40e5555555555555_3f76800000000000 +407ffff583a53b8e_40e5555555555555_3f87fff822bbecab +408199999999999a_40e5555555555555_3f9a666666666667 +4093333333333333_40e5555555555555_3faccccccccccccd +40a028f5c28f5c29_40e5555555555555_3fb83d70a3d70a3e +40b004189374bc6a_40e5555555555555_3fc80624dd2f1a9f +40c00068db8bac71_40e5555555555555_3fd8009d495182aa +40dd1745d1745d17_40e5555555555555_3fe5d1745d1745d2 +40e5555555555555_40e5555555555555_3ff0000000000000 +40f999999999999a_40e5555555555555_4003333333333334 +410c71c71c71c71c_40e5555555555555_4015555555555555 +4000000000000000_40f999999999999a_3f04000000000000 +4018000000000000_40f999999999999a_3f1e000000000000 +4024000000000000_40f999999999999a_3f29000000000000 +4032000000000000_40f999999999999a_3f36800000000000 +4041000000000000_40f999999999999a_3f45400000000000 +405c000000000000_40f999999999999a_3f51800000000000 +406e000000000000_40f999999999999a_3f62c00000000000 +407ffff583a53b8e_40f999999999999a_3f73fff972474538 +408199999999999a_40f999999999999a_3f86000000000000 +4093333333333333_40f999999999999a_3f97ffffffffffff +40a028f5c28f5c29_40f999999999999a_3fa4333333333333 +40b004189374bc6a_40f999999999999a_3fb4051eb851eb84 +40c00068db8bac71_40f999999999999a_3fc40083126e978d +40dd1745d1745d17_40f999999999999a_3fd22e8ba2e8ba2e +40e5555555555555_40f999999999999a_3feaaaaaaaaaaaaa +40f999999999999a_40f999999999999a_3ff0000000000000 +410c71c71c71c71c_40f999999999999a_4001c71c71c71c71 +4000000000000000_410c71c71c71c71c_3ef2000000000000 +4018000000000000_410c71c71c71c71c_3f0b000000000000 +4024000000000000_410c71c71c71c71c_3f16800000000000 +4032000000000000_410c71c71c71c71c_3f24400000000000 +4041000000000000_410c71c71c71c71c_3f33200000000000 +405c000000000000_410c71c71c71c71c_3f4f800000000000 +406e000000000000_410c71c71c71c71c_3f50e00000000000 +407ffff583a53b8e_410c71c71c71c71c_3f61fffa1a0cf180 +408199999999999a_410c71c71c71c71c_3f73ccccccccccce +4093333333333333_410c71c71c71c71c_3f8599999999999a +40a028f5c28f5c29_410c71c71c71c71c_3f922e147ae147ae +40b004189374bc6a_410c71c71c71c71c_3fa2049ba5e353f8 +40c00068db8bac71_410c71c71c71c71c_3fb20075f6fd21ff +40dd1745d1745d17_410c71c71c71c71c_3fc05d1745d1745d +40e5555555555555_410c71c71c71c71c_3fd8000000000000 +40f999999999999a_410c71c71c71c71c_3fecccccccccccce +410c71c71c71c71c_410c71c71c71c71c_3ff0000000000000 From 67780305ae1d7d4746863c0d9961ff6f5b72801a Mon Sep 17 00:00:00 2001 From: ushakya22 Date: Mon, 21 Feb 2022 17:28:11 +0000 Subject: [PATCH 7/7] Moved order of reading a, b, and result from test vectors file so that result matches up with inputs a and b --- pipelined/srt/testbench.sv | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pipelined/srt/testbench.sv b/pipelined/srt/testbench.sv index 971a3f997..c9cf72bdd 100644 --- a/pipelined/srt/testbench.sv +++ b/pipelined/srt/testbench.sv @@ -138,9 +138,10 @@ module testbench; if (($signed(diffn) > 1) | ($signed(diffp) > 1)) // check if accurate to 1 ulp begin errors = errors+1; + $display("a = %h b = %h result = %h",a,b,correctr); $display("result was %h, should be %h %h %h\n", result, correctr, diffn, diffp); + $display("at fail"); $display("failed\n"); - $display(testnum); $stop; end if (a === 64'hxxxxxxxxxxxxxxxx) @@ -153,12 +154,14 @@ module testbench; begin req <= #5 0; correctr = nextr; + $display("pre increment"); testnum = testnum+1; + a = Vec[`mema]; + b = Vec[`memb]; Vec = Tests[testnum]; $display("a = %h b = %h result = %h",a,b,nextr); - a = Vec[`mema]; - b = Vec[`memb]; nextr = Vec[`memr]; + $display("after increment"); end end