diff --git a/.gitignore b/.gitignore index adf8f72..4635605 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,21 @@ # Go workspace file go.work +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# OS General +Thumbs.db +.DS_Store + +# project +*.cert +*.key +*.log + +# Develop tools +.vscode/ +.idea/ +*.swp diff --git a/analog.go b/analog.go new file mode 100644 index 0000000..4913c85 --- /dev/null +++ b/analog.go @@ -0,0 +1,70 @@ +package comtrade + +// AnalogChan 模拟通道 +type AnalogChan struct { + An uint32 `json:"an"` //模拟通道索引号 + ChId string `json:"ch_id"` //通道标识 + Ph string `json:"ph"` //通道相别标识 + Ccbm string `json:"ccbm"` //被监视的电路元件 + Uu string `json:"uu"` //通道单位 + A float32 `json:"a"` //通道增益系数 + B float32 `json:"b"` //通道偏移量 + Skew float32 `json:"skew"` //通道时滞 + Min float32 `json:"min"` //通道最小值 + Max float32 `json:"max"` //通道最大值 + Primary float32 `json:"primary"` //一次系数 + Secondary float32 `json:"secondary"` //二次系数 + PS string `json:"ps"` //一次二次标识 +} + +func (c *AnalogChan) GetAn() uint32 { + return c.An +} + +func (c *AnalogChan) GetChId() string { + return c.ChId +} + +func (c *AnalogChan) GetPh() string { + return c.Ph +} + +func (c *AnalogChan) GetCcbm() string { + return c.Ccbm +} + +func (c *AnalogChan) GetUu() string { + return c.Uu +} + +func (c *AnalogChan) GetA() float32 { + return c.A +} + +func (c *AnalogChan) GetB() float32 { + return c.B +} + +func (c *AnalogChan) GetSkew() float32 { + return c.Skew +} + +func (c *AnalogChan) GetMin() float32 { + return c.Min +} + +func (c *AnalogChan) GetMax() float32 { + return c.Max +} + +func (c *AnalogChan) GetPrimary() float32 { + return c.Primary +} + +func (c *AnalogChan) GetSecondary() float32 { + return c.Secondary +} + +func (c *AnalogChan) GetPS() string { + return c.PS +} diff --git a/ascii_config.go b/ascii_config.go new file mode 100644 index 0000000..905c07e --- /dev/null +++ b/ascii_config.go @@ -0,0 +1,264 @@ +package comtrade + +import ( + "bytes" + "fmt" + "io" + "os" + "strconv" + "strings" + "time" +) + +func ParseComtradeCfg(filePath string) (*ComtradeCfg, error) { + cfgFile, err := os.Open(filePath) + if err != nil { + return nil, err + } + defer cfgFile.Close() + + comtradeCfg := &ComtradeCfg{} + var tempList [][]byte + content, err := io.ReadAll(cfgFile) + if err != nil { + return nil, err + } + lines := bytes.Split(content, []byte("\n")) + + // read first line + tempList = bytes.Split(lines[0], []byte(",")) + if len(tempList) < 3 { + return nil, ErrReadFirstLine + } + // station_name, rec_dev_id, rev_year + comtradeCfg.StationName = ByteToString(tempList[0]) + comtradeCfg.RecDevID = ByteToString(tempList[1]) + if value, err := strconv.ParseUint(ByteToString(tempList[2]), 10, 16); err != nil { + return nil, err + } else { + comtradeCfg.RevYear = uint16(value) + } + + // read second line + tempList = bytes.Split(lines[1], []byte(",")) + if len(tempList) < 3 { + return nil, ErrReadSecondLine + } + + // total channel number + if value, err := strconv.ParseUint(ByteToString(tempList[0]), 10, 16); err != nil { + return nil, err + } else { + comtradeCfg.Total = uint32(value) + } + if !bytes.Contains(tempList[1], []byte("A")) || !bytes.Contains(tempList[2], []byte("D")) { + return nil, ErrReadADChannel + } + // analog channel total number + if value, err := strconv.ParseUint(string(bytes.TrimSuffix(bytes.TrimSpace(tempList[1]), []byte("A"))), 10, 64); err != nil { + return nil, err + } else { + comtradeCfg.AnalogNum = uint32(value) + } + // digit channel total number + if value, err := strconv.ParseUint(string(bytes.TrimSuffix(bytes.TrimSpace(tempList[2]), []byte("D"))), 10, 64); err != nil { + return nil, err + } else { + comtradeCfg.DigitalNum = uint32(value) + } + + // initialize analog and digital channels + comtradeCfg.Analog = make([]AnalogChan, comtradeCfg.AnalogNum) + comtradeCfg.Digital = make([]DigitalChan, comtradeCfg.DigitalNum) + + // 读取模拟通道 read analog channels + for i := 0; i < int(comtradeCfg.AnalogNum); i++ { + tempList = bytes.Split(lines[2+i], []byte(",")) + if len(tempList) < 10 { + return nil, ErrReadAnalogChannel + } + // 通道索引号 An + if num, err := strconv.ParseInt(ByteToString(tempList[0]), 10, 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].An = uint32(num) + } + // 通道标识 ch_id,通道相标识 ph + comtradeCfg.Analog[i].ChId = ByteToString(tempList[1]) + comtradeCfg.Analog[i].Ph = ByteToString(tempList[2]) + // 被监视的电路元件 ccbm, 通道单位 uu + comtradeCfg.Analog[i].Ccbm = ByteToString(tempList[3]) + comtradeCfg.Analog[i].Uu = ByteToString(tempList[4]) + // 通道增益系数 a + if num, err := strconv.ParseFloat(ByteToString(tempList[5]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].A = float32(num) + } + // 通道偏移量 b + if num, err := strconv.ParseFloat(ByteToString(tempList[6]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].B = float32(num) + } + // 从采样时刻开始的通道时滞 skew + if num, err := strconv.ParseFloat(ByteToString(tempList[7]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].Skew = float32(num) + } + // Min Value at current channel + if num, err := strconv.ParseFloat(ByteToString(tempList[8]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].Min = float32(num) + } + // Max Value at current channel + if num, err := strconv.ParseFloat(ByteToString(tempList[9]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Analog[i].Max = float32(num) + } + + if len(tempList) > 10 { + if num, err := strconv.ParseFloat(ByteToString(tempList[10]), 64); err == nil { + comtradeCfg.Analog[i].Primary = float32(num) + } + } + if len(tempList) > 11 { + if num, err := strconv.ParseFloat(ByteToString(tempList[11]), 64); err == nil { + comtradeCfg.Analog[i].Secondary = float32(num) + } + } + } + + // read digit channels + for i := 0; i < int(comtradeCfg.DigitalNum); i++ { + tempList = bytes.Split(lines[2+int(comtradeCfg.AnalogNum)+i], []byte(",")) + if len(tempList) < 3 { + return nil, ErrReadDigitalChannel + } + if num, err := strconv.Atoi(ByteToString(tempList[0])); err != nil { + return nil, err + } else { + comtradeCfg.Digital[i].Dn = uint32(num) + } + comtradeCfg.Digital[i].ChId = ByteToString(tempList[1]) + comtradeCfg.Digital[i].Ph = ByteToString(tempList[2]) + + // checking vector length to avoid IndexError + if len(tempList) > 3 { + // channel element (usually null) + comtradeCfg.Digital[i].Ccbm = ByteToString(tempList[3]) + } + if len(tempList) > 4 { + if num, err := strconv.ParseUint(ByteToString(tempList[4]), 10, 64); err != nil { + return nil, err + } else { + comtradeCfg.Digital[i].Y = uint8(num) + } + } + } + + // read frequency + var line uint32 = 2 + tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(",")) + if num, err := strconv.ParseFloat(ByteToString(tempList[0]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Lf = float32(num) + line++ + } + + // read sampling rate num + tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(",")) + if num, err := strconv.ParseUint(ByteToString(tempList[0]), 10, 64); err != nil { + return nil, err + } else { + comtradeCfg.Nrates = uint16(num) + line++ + } + + // read Sample and endSample + for i := 0; i < int(comtradeCfg.Nrates); i++ { + tempList = bytes.Split(lines[line+uint32(i)+comtradeCfg.Total], []byte(",")) + if len(tempList) < 2 { + return nil, ErrReadSample + } + if num, err := strconv.ParseFloat(ByteToString(tempList[0]), 64); err != nil { + return nil, err + } else { + comtradeCfg.Samp = append(comtradeCfg.Samp, float32(num)) + } + if num, err := strconv.ParseFloat(ByteToString(tempList[1]), 64); err != nil { + return nil, err + } else { + comtradeCfg.EndSamp = append(comtradeCfg.EndSamp, uint32(num)) + } + } + line += uint32(comtradeCfg.Nrates) + + // read first data time (dd/mm/yyyy,hh:mm:ss.ssssss) + if start, err := time.Parse(DateTimeLayout, ByteToString(lines[line+comtradeCfg.Total])); err != nil { + if strings.Contains(err.Error(), MonthOutOfRange) { + // try to parse date reverse month and day: mm/dd/yyyy + if start, err = time.Parse(DateTimeLayout2, ByteToString(lines[line+comtradeCfg.Total])); err != nil { + return nil, err + } else { + comtradeCfg.FirstDataTime = start + line++ + } + } + if err != nil { + return nil, err + } + } else { + comtradeCfg.FirstDataTime = start + line++ + } + + // read trigger time (dd/mm/yyyy,hh:mm:ss.ssssss) + tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(",")) + if trigger, err := time.Parse(DateTimeLayout, ByteToString(bytes.Join(tempList, []byte(",")))); err != nil { + if strings.Contains(err.Error(), MonthOutOfRange) { + // try to parse date reverse month and day + if trigger, err = time.Parse(DateTimeLayout2, ByteToString(bytes.Join(tempList, []byte(",")))); err != nil { + return nil, err + } else { + comtradeCfg.TriggerTime = trigger + line++ + } + } + if err != nil { + return nil, err + } + } else { + comtradeCfg.TriggerTime = trigger + line++ + } + + // read data file type + tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(",")) + // convert ft value to upper style + comtradeCfg.Ft = strings.ToUpper(ByteToString(tempList[0])) + fmt.Printf("ft vavlue:%v\n", comtradeCfg.Ft) + + // read time multiplication factor + line++ + tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(",")) + if !bytes.Equal(tempList[0], []byte("")) { + num, err := strconv.ParseFloat(ByteToString(tempList[0]), 64) + if err != nil { + return nil, err + } + comtradeCfg.TimeMult = float32(num) + } else { + comtradeCfg.TimeMult = 1 + line++ + } + return comtradeCfg, nil +} + +func ByteToString(b []byte) string { + return strings.TrimSpace(string(b)) +} diff --git a/ascii_config_test.go b/ascii_config_test.go new file mode 100644 index 0000000..389b266 --- /dev/null +++ b/ascii_config_test.go @@ -0,0 +1,19 @@ +package comtrade + +import ( + "reflect" + "testing" +) + +func TestParseComtradeCfg(t *testing.T) { + filePath := "testdata/test1.cfg" + got, err := ParseComtradeCfg(filePath) + if err != nil { + t.Errorf("ParseComtradeCfg() error = %v", err) + return + } + if reflect.TypeOf(got) != reflect.TypeOf(&ComtradeCfg{}) { + t.Errorf("ParseComtradeCfg() got = %v", got) + } + t.Log(got.StationName) +} diff --git a/ascii_data.go b/ascii_data.go new file mode 100644 index 0000000..eb44ee9 --- /dev/null +++ b/ascii_data.go @@ -0,0 +1,85 @@ +package comtrade + +import ( + "bytes" + "io" + "os" + "strconv" +) + +// Parse ASCIIData ASCIIData is the ascii data of a comtrade data file. + +func init() { + Add(TypeASCII, func() Parser { + return &ASCIIData{} + }) +} + +type ASCIIData struct{} + +func (a *ASCIIData) Parse(filePath string, analogNum, digitalNum, endSamp uint32) (*Data, error) { + comtradeData := &Data{} + datFile, err := os.Open(filePath) + if err != nil { + return nil, err + } + defer datFile.Close() + + content, err := io.ReadAll(datFile) + if err != nil { + return nil, err + } + lines := bytes.Split(content, []byte("\n")) + if len(lines)-1 != int(endSamp) { + return nil, ErrInvalidFile + } + + comtradeData.AnalogData = make([]AnalogData, int(endSamp)) + comtradeData.DigitalData = make([]DigitalData, int(endSamp)) + + for i := 0; i < int(endSamp); i++ { + comtradeData.AnalogData[i].Data = make([]int32, analogNum) + comtradeData.DigitalData[i].Data = make([]uint8, digitalNum) + } + + total := 1 + 1 + int(analogNum) + int(digitalNum) + var tempList [][]byte + for i := 0; i < int(endSamp); i++ { + tempList = bytes.Split(lines[i], []byte(",")) + if len(tempList) != total { + return nil, ErrReadFirstLine + } + + if value, err := strconv.Atoi(ByteToString(tempList[0])); err != nil { + return nil, err + } else { + comtradeData.AnalogData[i].N = uint32(value) + comtradeData.DigitalData[i].N = uint32(value) + } + + if value, err := strconv.Atoi(ByteToString(tempList[1])); err != nil { + return nil, err + } else { + comtradeData.AnalogData[i].Timestamp = uint32(value) + comtradeData.DigitalData[i].Timestamp = uint32(value) + } + + for j := 0; j < int(analogNum); j++ { + if value, err := strconv.ParseInt(ByteToString(tempList[j+2]), 10, 64); err != nil { + return nil, err + } else { + comtradeData.AnalogData[i].Data[j] = int32(value) + } + } + + for j := 0; j < int(digitalNum); j++ { + if value, err := strconv.ParseInt(ByteToString(tempList[j+2+int(analogNum)]), 10, 64); err != nil { + return nil, err + } else { + comtradeData.DigitalData[i].Data[j] = uint8(value) + } + } + } + + return comtradeData, nil +} diff --git a/ascii_data_test.go b/ascii_data_test.go new file mode 100644 index 0000000..c509752 --- /dev/null +++ b/ascii_data_test.go @@ -0,0 +1,26 @@ +package comtrade + +import ( + "reflect" + "testing" +) + +func TestASCIIData_Parse(t *testing.T) { + filePath := "testdata/test2.cfg" + cfg, err := ParseComtradeCfg(filePath) + if err != nil { + t.Errorf("ParseComtradeCfg() error = %v", err) + return + } + + a := &ASCIIData{} + dat, err := a.Parse("testdata/test2.dat", cfg.AnalogNum, cfg.DigitalNum, cfg.EndSamp[len(cfg.EndSamp)-1]) + if err != nil { + t.Errorf("Parse() error = %v", err) + return + } + if reflect.TypeOf(dat) != reflect.TypeOf(&Data{}) { + t.Errorf("Parse() got = %v", dat) + } + t.Log(dat) +} diff --git a/binary32_data.go b/binary32_data.go new file mode 100644 index 0000000..659411d --- /dev/null +++ b/binary32_data.go @@ -0,0 +1,15 @@ +package comtrade + +func init() { + Add(TypeBinary32, func() Parser { + return &Binary32Data{} + }) +} + +// Binary32Data TODO +type Binary32Data struct { +} + +func (b *Binary32Data) Parse(filePath string, analogNum, digitalNum, endSamp uint32) (*Data, error) { + return &Data{}, nil +} diff --git a/binary_data.go b/binary_data.go new file mode 100644 index 0000000..eaf279c --- /dev/null +++ b/binary_data.go @@ -0,0 +1,112 @@ +package comtrade + +import ( + "encoding/binary" + "math" + "os" +) + +// BinaryData is the binary data of a comtrade data file + +func init() { + Add(TypeBinary, func() Parser { + return &BinaryData{} + }) +} + +// 读取数据文件 +// 1、采样序号和时标,均以四字节,无符号二进制格式存储 +// 2、模拟通道采样数据,binary两个字节,binary32四个字节二进制补码形式存储 +// 3、每16个状态通道以两个字节一组存储,字的最低为对应该组16个状态通道中最小编号通道 +// 4、每次采样字节数=(模拟通道数 * 每个采样数据占据字节数)+(状态通道数 / 16 * 2) + 4 + 4 +// 5、每个采样数据占据字节数=2或4,取决于数据格式,2表示binary,4表示binary32 + +// 05,667,-760,1274,72,61,-140,-502,0,0,0,0,1,1 +// 05 00 00 00 +// 9B 02 00 00 667 +// 08 FD -760 +// FA 04 1274 +// 48 00 72 +// 3D 00 61 +// 74 FF -140 +// 0A FE -502 +// 30 00 0,0,0,0,1,1 +type BinaryData struct{} + +func (b *BinaryData) Parse(filePath string, analogNum, digitalNum, endSamp uint32) (*Data, error) { + comtradeData := &Data{} + + // 打开文件 + file, err := os.Open(filePath) + if err != nil { + return nil, err + } + defer file.Close() + + comtradeData.AnalogData = make([]AnalogData, int(endSamp)) + comtradeData.DigitalData = make([]DigitalData, int(endSamp)) + + for i := 0; i < int(endSamp); i++ { + comtradeData.AnalogData[i].Data = make([]int32, analogNum) + comtradeData.DigitalData[i].Data = make([]uint8, digitalNum) + } + + // 计算状态通道组数 + digitalCount := int(math.Ceil(float64(digitalNum) / 16.0)) + remainder := int(digitalNum % 16) + + for i := 0; i < int(endSamp); i++ { + var ( + sampleIndex uint32 + timestamp uint32 + ) + // 解析采样序号 + if err := binary.Read(file, binary.LittleEndian, &sampleIndex); err != nil { + return nil, err + } + comtradeData.AnalogData[i].N = sampleIndex + comtradeData.DigitalData[i].N = sampleIndex + + // 解析采样时标 + if err = binary.Read(file, binary.LittleEndian, ×tamp); err != nil { + return nil, err + } + comtradeData.AnalogData[i].Timestamp = timestamp + comtradeData.DigitalData[i].Timestamp = timestamp + + // 解析模拟通道采样数据 + for m := 0; m < int(analogNum); m++ { + var tmp int16 + if err := binary.Read(file, binary.LittleEndian, &tmp); err != nil { + return nil, err + } else { + comtradeData.AnalogData[i].Data[m] = int32(tmp) + } + } + + // 3、每16个状态通道以两个字节一组存储,字的最低为对应该组16个状态通道中最小编号通道 + // 4、每次采样字节数=(模拟通道数 * 每个采样数据占据字节数)+(状态通道数 / 16 * 2) + 4 + 4 + // 5、每个采样数据占据字节数=2或4,取决于数据格式,2表示binary,4表示binary32 + + stateData := make([]uint16, digitalCount) + for n, datum := range stateData { + data := datum + if err := binary.Read(file, binary.LittleEndian, &data); err != nil { + return nil, err + } + stateData[n] = data + } + for h, datum := range stateData { + if remainder != 0 && h == digitalCount-1 { + for j := 0; j < remainder; j++ { + comtradeData.DigitalData[i].Data[(h*16)+j] = uint8(uint((datum >> uint(j)) & 0x0001)) + } + break + } + for k := 0; k < 16; k++ { + comtradeData.DigitalData[i].Data[(h*16)+k] = uint8(uint((datum >> uint(k)) & 0x0001)) + } + } + } + return comtradeData, nil +} diff --git a/binary_data_test.go b/binary_data_test.go new file mode 100644 index 0000000..77a2413 --- /dev/null +++ b/binary_data_test.go @@ -0,0 +1,26 @@ +package comtrade + +import ( + "reflect" + "testing" +) + +func TestBinaryData_Parse(t *testing.T) { + filePath := "testdata/test1.cfg" + cfg, err := ParseComtradeCfg(filePath) + if err != nil { + t.Errorf("ParseComtradeCfg() error = %v", err) + return + } + + b := &BinaryData{} + dat, err := b.Parse("testdata/test1.dat", cfg.AnalogNum, cfg.DigitalNum, cfg.EndSamp[len(cfg.EndSamp)-1]) + if err != nil { + t.Errorf("Parse() error = %v", err) + return + } + if reflect.TypeOf(dat) != reflect.TypeOf(&Data{}) { + t.Errorf("Parse() got = %v", dat) + } + t.Log(dat) +} diff --git a/comtrade.go b/comtrade.go new file mode 100644 index 0000000..a464fb3 --- /dev/null +++ b/comtrade.go @@ -0,0 +1,40 @@ +package comtrade + +type Comtrade struct { + Conf *ComtradeCfg + Data *Data +} + +func ParseComtrade(configurePath, datafilePath string) (comtrade *Comtrade, err error) { + c := &Comtrade{} + c.Conf, err = c.parseComtradeConfig(configurePath) + if err != nil { + return nil, err + } + c.Data, err = c.parseComtradeData(datafilePath) + if err != nil { + return nil, err + } + return c, nil +} + +func (c *Comtrade) parseComtradeConfig(configurePath string) (*ComtradeCfg, error) { + comtradeConfig, err := ParseComtradeCfg(configurePath) + if err != nil { + return nil, err + } + return comtradeConfig, nil +} + +func (c *Comtrade) parseComtradeData(datafilePath string) (*Data, error) { + creator, ok := Parsers[c.Conf.Ft] + if !ok { + return nil, ErrUnknownTypeOfData + } + parser := creator() + comtradeData, err := parser.Parse(datafilePath, c.Conf.GetAnalogNum(), c.Conf.GetDigitalNum(), c.Conf.GetEndSamp()[len(c.Conf.GetEndSamp())-1]) + if err != nil { + return nil, err + } + return comtradeData, nil +} diff --git a/config.go b/config.go new file mode 100644 index 0000000..c47848a --- /dev/null +++ b/config.go @@ -0,0 +1,110 @@ +package comtrade + +import ( + "time" +) + +type ComtradeCfg struct { + StationName string `json:"station_name"` //厂站名称 + RecDevID string `json:"rec_dev_id"` //记录设备ID + RevYear uint16 `json:"rev_year"` //COMTRADE版本年份 1991、1999、2013 + Total uint32 `json:"total"` //总通道数 + AnalogNum uint32 `json:"analog_num"` //模拟通道数 + DigitalNum uint32 `json:"digital_num"` //数字/状态通道数 + Analog []AnalogChan `json:"analog"` //模拟通道 + Digital []DigitalChan `json:"digital"` //数字/状态通道 + Lf float32 `json:"lf"` //标称频率 + Nrates uint16 `json:"nrates"` //采样率个数 + Samp []float32 `json:"samp"` //采样率 + EndSamp []uint32 `json:"end_samp"` //最末采样序号 + FirstDataTime time.Time `json:"first_data_time"` //第一条数据时间 + TriggerTime time.Time `json:"trigger_time"` //采样触发时间 + Ft string `json:"ft"` //数据文件类型,ASCII、BINARY、BINARY32、FLOAT32 + + // 2017 + TimeMult float32 `json:"time_mult"` //时间倍率因子 + TimeCode string `json:"time_code"` //时间编码 + LocalCode string `json:"local_code"` //本地编码 + TmqCode uint8 `json:"tmq_code"` //采样时间品质 + Leapsec uint8 `json:"leapsec"` //闰秒标识符 +} + +func (cc *ComtradeCfg) GetStationName() string { + return cc.StationName +} + +func (cc *ComtradeCfg) GetRecDevID() string { + return cc.RecDevID +} + +func (cc *ComtradeCfg) GetRevYear() uint16 { + return cc.RevYear +} + +func (cc *ComtradeCfg) GetTotal() uint32 { + return cc.Total +} + +func (cc *ComtradeCfg) GetAnalogNum() uint32 { + return cc.AnalogNum +} + +func (cc *ComtradeCfg) GetDigitalNum() uint32 { + return cc.DigitalNum +} + +func (cc *ComtradeCfg) GetLf() float32 { + return cc.Lf +} + +func (cc *ComtradeCfg) GetNrates() uint16 { + return cc.Nrates +} + +func (cc *ComtradeCfg) GetSamp() []float32 { + return cc.Samp +} + +func (cc *ComtradeCfg) GetEndSamp() []uint32 { + return cc.EndSamp +} + +func (cc *ComtradeCfg) GetTriggerTime() time.Time { + return cc.TriggerTime +} + +func (cc *ComtradeCfg) GetFirstDataTime() time.Time { + return cc.FirstDataTime +} + +func (cc *ComtradeCfg) GetFt() string { + return cc.Ft +} + +func (cc *ComtradeCfg) GetTimeMult() float32 { + return cc.TimeMult +} + +func (cc *ComtradeCfg) GetTimeCode() string { + return cc.TimeCode +} + +func (cc *ComtradeCfg) GetLocalCode() string { + return cc.LocalCode +} + +func (cc *ComtradeCfg) GetTmqCode() uint8 { + return cc.TmqCode +} + +func (cc *ComtradeCfg) GetLeapsec() uint8 { + return cc.Leapsec +} + +func (cc *ComtradeCfg) GetAnalog() []AnalogChan { + return cc.Analog +} + +func (cc *ComtradeCfg) GetDigital() []DigitalChan { + return cc.Digital +} diff --git a/data.go b/data.go new file mode 100644 index 0000000..7dcd3c8 --- /dev/null +++ b/data.go @@ -0,0 +1,29 @@ +package comtrade + +// Data is the data of a comtrade file. +type Data struct { + AnalogData []AnalogData + DigitalData []DigitalData +} + +// AnalogData is the analog data of a comtrade file. +type AnalogData struct { + N uint32 `json:"n"` //模拟通道序号 + Timestamp uint32 `json:"timestamp"` //模拟通道时标 + Data []int32 `json:"data"` //模拟通道数据 +} + +// DigitalData is the digital data of a comtrade file. +type DigitalData struct { + N uint32 `json:"n"` //数字通道序号 + Timestamp uint32 `json:"timestamp"` //数字通道时标 + Data []uint8 `json:"data"` //数字通道数据 +} + +func (cd *Data) GetAnalogData() []AnalogData { + return cd.AnalogData +} + +func (cd *Data) GetDigitalData() []DigitalData { + return cd.DigitalData +} diff --git a/digital.go b/digital.go new file mode 100644 index 0000000..0c99d30 --- /dev/null +++ b/digital.go @@ -0,0 +1,30 @@ +package comtrade + +// DigitalChan 数字通道 +type DigitalChan struct { + Dn uint32 `json:"dn"` //数字/状态通道索引号 + ChId string `json:"ch_id"` //通道标识 + Ph string `json:"ph"` //通道相别标识 + Ccbm string `json:"ccbm"` //被监视的电路元件 + Y uint8 `json:"y"` //通道状态 +} + +func (c *DigitalChan) GetDn() uint32 { + return c.Dn +} + +func (c *DigitalChan) GetChId() string { + return c.ChId +} + +func (c *DigitalChan) GetPh() string { + return c.Ph +} + +func (c *DigitalChan) GetCcbm() string { + return c.Ccbm +} + +func (c *DigitalChan) GetY() uint8 { + return c.Y +} diff --git a/errors.go b/errors.go new file mode 100644 index 0000000..d470aac --- /dev/null +++ b/errors.go @@ -0,0 +1,14 @@ +package comtrade + +import "errors" + +var ( + ErrUnknownTypeOfData = errors.New("unknown type of data") + ErrInvalidFile = errors.New("invalid file") + ErrReadFirstLine = errors.New("read first line error") + ErrReadSecondLine = errors.New("read second line error") + ErrReadADChannel = errors.New("read A/D channel num line error") + ErrReadAnalogChannel = errors.New("read analog channel line error") + ErrReadDigitalChannel = errors.New("read digital channel line error") + ErrReadSample = errors.New("read sample error") +) diff --git a/example/main.go b/example/main.go new file mode 100644 index 0000000..8521382 --- /dev/null +++ b/example/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "flag" + "fmt" + "github.com/yonwoo9/go-comtrade" +) + +var ( + configFile = flag.String("config", "testdata/test1.cfg", "config file path") + dataFile = flag.String("data", "testdata/test1.dat", "data file path") +) + +func main() { + flag.Parse() + + c, err := comtrade.ParseComtrade(*configFile, *dataFile) + if err != nil { + fmt.Println(err) + return + } + + fmt.Println(c.Conf) +} diff --git a/float32_data.go b/float32_data.go new file mode 100644 index 0000000..5757ca8 --- /dev/null +++ b/float32_data.go @@ -0,0 +1,15 @@ +package comtrade + +func init() { + Add(TypeFloat32, func() Parser { + return &Float32Data{} + }) +} + +// Float32Data TODO +type Float32Data struct { +} + +func (f *Float32Data) Parse(filePath string, analogNum, digitalNum, endSamp uint32) (*Data, error) { + return &Data{}, nil +} diff --git a/register.go b/register.go new file mode 100644 index 0000000..20b96f3 --- /dev/null +++ b/register.go @@ -0,0 +1,14 @@ +package comtrade + +// https://github.com/influxdata/telegraf/blob/master/plugins/parsers/registry.go + +// Creator is the function to create a new parser +type Creator func() Parser + +// Parsers contains the registry of all known parsers (following the new style) +var Parsers = map[string]Creator{} + +// Add adds a parser to the registry. Usually this function is called in the plugin's init function +func Add(name string, creator Creator) { + Parsers[name] = creator +} diff --git a/testdata/test1.cfg b/testdata/test1.cfg new file mode 100644 index 0000000..1ac3288 --- /dev/null +++ b/testdata/test1.cfg @@ -0,0 +1,113 @@ +Strathmore 275kV,1,2001 +104,20A,84D +1,LINE SUM ILA,,,A,2.181993E-02,0,0,-32767,32767,1.00000000,1.00000000,P +2,LINE SUM ILB,,,A,1.450719E-02,0,0,-32767,32767,1.00000000,1.00000000,P +3,LINE SUM ILC,,,A,1.133065E-01,0,0,-32767,32767,1.00000000,1.00000000,P +4,LINE SUM IN,,,A,1.092105E-01,0,0,-32767,32767,1.00000000,1.00000000,P +5,REM1 SUM ILA,,,A,1.989423E-02,0,0,-32767,32767,1.00000000,1.00000000,P +6,REM1 SUM ILB,,,A,1.388269E-02,0,0,-32767,32767,1.00000000,1.00000000,P +7,REM1 SUM ILC,,,A,1.004310E-01,0,0,-32767,32767,1.00000000,1.00000000,P +8,REM1 SUM IN,,,A,8.381079E-02,0,0,-32767,32767,1.00000000,1.00000000,P +9,LINE ULA,,,V,7.933214E+00,0,0,-32767,32767,1.00000000,1.00000000,P +10,LINE ULB,,,V,8.101845E+00,0,0,-32767,32767,1.00000000,1.00000000,P +11,LINE ULC,,,V,9.667931E+00,0,0,-32767,32767,1.00000000,1.00000000,P +12,LINE UN,,,V,8.350841E+00,0,0,-32767,32767,1.00000000,1.00000000,P +13,I DIFF LA,,,one,4.157818E-03,0,0,-32767,32767,1.00000000,1.00000000,P +14,I DIFF LB,,,one,4.068515E-03,0,0,-32767,32767,1.00000000,1.00000000,P +15,I DIFF LC,,,one,1.899858E-01,0,0,-32767,32767,1.00000000,1.00000000,P +16,I BIAS,,,A,6.681344E-02,0,0,-32767,32767,1.00000000,1.00000000,P +17,I DIFF LA MAG,,,A,2.440047E-03,0,0,-32767,32767,1.00000000,1.00000000,P +18,I DIFF LB MAG,,,A,2.881186E-03,0,0,-32767,32767,1.00000000,1.00000000,P +19,I DIFF LC MAG,,,A,1.145064E-01,0,0,-32767,32767,1.00000000,1.00000000,P +20,I DIFF NS MAG,,,A,3.879977E-02,0,0,-32767,32767,1.00000000,1.00000000,P +1,87L Id>StartA,,,0 +2,87L Id>StartB,,,0 +3,87L Id>StartC,,,0 +4,87L Id>Trip A,,,0 +5,87L Id>Trip B,,,0 +6,87L Id>Trip C,,,0 +7,87L Tr Local,,,0 +8,87L Tr Remote,,,0 +9,67N Start FW,,,0 +10,67N Start RV,,,0 +11,67NComSchTrp,,,0 +12,LED Reset,,,0 +13,67 I>Start LA,,,0 +14,67 I>Start LB,,,0 +15,67 I>Start LC,,,0 +16,67 I> Trip,,,0 +17,BusCB Trip LA,,,0 +18,BusCB Trip LB,,,0 +19,BusCB Trip LC,,,0 +20,TieCB Trip LA,,,0 +21,TieCB Trip LB,,,0 +22,TieCB Trip LC,,,0 +23,BusCB StBF LA,,,0 +24,BusCB StBF LB,,,0 +25,BusCB StBF LC,,,0 +26,Bus CB Master,,,0 +27,Tie CB Master,,,0 +28,Rx AR Perm 1P,,,0 +29,Rx AR 1PTProg,,,0 +30,Tx AR Start,,,0 +31,Tx AR Trip 3P,,,0 +32,Tx AR Inhibit,,,0 +33,BusCB 3P Trip,,,0 +34,TieCB 3PTrip,,,0 +35,87L 2 Harm LA,,,0 +36,87L 2 Harm LB,,,0 +37,87L 2 Harm LC,,,0 +38,87L 5 Harm LA,,,0 +39,87L 5 Harm LB,,,0 +40,87L 5 Harm LC,,,0 +41,87L Blocked,,,0 +42,87L Restrnd,,,0 +43,87L Unrestrnd,,,0 +44,87L Enhanced,,,0 +45,87LSustndCurr,,,0 +46,Open CT Alarm,,,0 +47,67 2Harmonic,,,0 +48,67N 2Harmonic,,,0 +49,ParamSetGrp 1,,,0 +50,BusMec St CBF,,,0 +51,TieMec St CBF,,,0 +52,Spare Input1,,,0 +53,Spare Input2,,,0 +54,Spare Input3,,,0 +55,MU1 DataError,,,0 +56,MU1SynchAlarm,,,0 +57,MU1SampleLost,,,0 +58,MU1-IED Drift,,,0 +59,MU1 Test Mode,,,0 +60,MU2 DataError,,,0 +61,MU2SynchAlarm,,,0 +62,MU2SampleLost,,,0 +63,MU2-IED Drift,,,0 +64,MU2 Test Mode,,,0 +65,MU3 DataError,,,0 +66,MU3SynchAlarm,,,0 +67,MU3SampleLost,,,0 +68,MU3-IED Drift,,,0 +69,MU3 Test Mode,,,0 +70,TieCB StBF LA,,,0 +71,TieCB StBF LB,,,0 +72,TieCB StBF LC,,,0 +73,LDCM1CommFail,,,0 +74,Rx DTT3 no BU,,,0 +75,A10TxDTT3noBU,,,0 +76,IO-Card Fail,,,0 +77,AR Isolated,,,0 +78,Rx DTT1withBU,,,0 +79,Rx Perm DEF,,,0 +80,Tx Perm DEF,,,0 +81,67 Start FW,,,0 +82,67 Start RV,,,0 +83,VT SupplyFail,,,0 +84,Dist Rec Made,,,0 +50 +1 +1000,11001 +31/03/2017,22:01:11.125094 +31/03/2017,22:01:12.126097 +BINARY +1 diff --git a/testdata/test1.dat b/testdata/test1.dat new file mode 100644 index 0000000..6367911 Binary files /dev/null and b/testdata/test1.dat differ diff --git a/testdata/test2.cfg b/testdata/test2.cfg new file mode 100644 index 0000000..84c4e4b --- /dev/null +++ b/testdata/test2.cfg @@ -0,0 +1,40 @@ +·PSL603,78,1999 +22,15A,7D +1,1-Ia,A,,A,0.001740,0.000000,0.000000,-32767,32767,1.00,1.00,S +2,2-Ib,B,,A,0.001740,0.000000,0.000000,-32767,32767,1.00,1.00,S +3,3-Ic,C,,A,0.001740,0.000000,0.000000,-32767,32767,1.00,1.00,S +4,4-3I0,N,,A,0.001740,0.000000,0.000000,-32767,32767,1.00,1.00,S +5,5-Ua,A,,V,0.003052,0.000000,0.000000,-32767,32767,1.00,1.00,S +6,6-Ub,B,,V,0.003052,0.000000,0.000000,-32767,32767,1.00,1.00,S +7,7-Uc,C,,V,0.003052,0.000000,0.000000,-32767,32767,1.00,1.00,S +8,8-3U0,N,,V,0.012207,0.000000,0.000000,-32767,32767,1.00,1.00,S +9,9-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +10,10-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +11,11-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +12,12-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +13,13-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +14,14-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +15,15-AI,N,, ,1.000000,0.000000,0.000000,-32767,32767,1.00,1.00,S +1,1-Aբ,,,0 +2,2-Bբ,,,0 +3,3-Cբ,,,0 +4,4-,,,0 +5,5-鿪أλ,,,0 +6,6-鿪Bλ,,,0 +7,7-鿪Cλ,,,0 +50 +10 +1000,200 +1000,400 +1000,600 +1000,800 +1000,950 +1000,950 +1000,950 +1000,950 +1000,950 +1000,950 +24/12/2012,17:30:48.384000 +24/12/2012,17:30:48.384000 +ASCII +1 diff --git a/testdata/test2.dat b/testdata/test2.dat new file mode 100644 index 0000000..bb32d1a --- /dev/null +++ b/testdata/test2.dat @@ -0,0 +1,950 @@ +1,0,000571,000010,000037,000013,000031,000015,000033,000020,000000,000000,000000,000000,000000,000000,000000,0,0,0,0,0,0,0 +2,1000,000207,000008,000034,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +3,2000,-000170,000010,000036,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +4,3000,-000532,000009,000041,000015,000033,000015,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +5,4000,-000836,000009,000036,000013,000033,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +6,5000,-001057,000009,000035,000013,000034,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +7,6000,-001172,000008,000037,000013,000039,000017,000035,000023,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +8,7000,-001168,000009,000035,000013,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +9,8000,-001052,000002,000035,000012,000039,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +10,9000,-000823,000008,000037,000013,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +11,10000,-000512,000010,000037,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +12,11000,-000152,000008,000037,000016,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +13,12000,000227,000010,000037,000014,000041,000010,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +14,13000,000592,000010,000036,000013,000040,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +15,14000,000896,000010,000035,000014,000039,000010,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +16,15000,001115,000010,000037,000013,000035,000011,000025,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +17,16000,001229,000009,000037,000015,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +18,17000,001225,000008,000037,000014,000033,000012,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +19,18000,001106,000009,000033,000009,000032,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +20,19000,000879,000010,000037,000013,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +21,20000,000573,000010,000037,000014,000032,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +22,21000,000209,000008,000036,000014,000031,000015,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +23,22000,-000170,000008,000036,000013,000031,000015,000036,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +24,23000,-000533,000008,000036,000014,000034,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +25,24000,-000835,000011,000035,000013,000035,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +26,25000,-001057,000008,000035,000013,000035,000014,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +27,26000,-001171,000009,000035,000011,000035,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +28,27000,-001168,000009,000035,000014,000041,000017,000031,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +29,28000,-001047,000008,000035,000013,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +30,29000,-000821,000009,000036,000012,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +31,30000,-000513,000009,000036,000014,000041,000013,000026,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +32,31000,-000154,000008,000035,000011,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +33,32000,000229,000010,000037,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +34,33000,000590,000010,000037,000014,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +35,34000,000897,000009,000037,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +36,35000,001116,000011,000037,000014,000037,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +37,36000,001230,000010,000037,000012,000035,000011,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +38,37000,001226,000009,000036,000014,000033,000012,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +39,38000,001106,000009,000037,000014,000033,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +40,39000,000886,000013,000038,000013,000033,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +41,40000,000570,000009,000036,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +42,41000,000209,000008,000037,000014,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +43,42000,-000171,000009,000035,000014,000031,000014,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +44,43000,-000531,000008,000035,000013,000029,000013,000032,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +45,44000,-000836,000009,000035,000014,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +46,45000,-001056,000009,000036,000013,000034,000014,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +47,46000,-001173,000010,000036,000014,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +48,47000,-001168,000009,000036,000013,000038,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +49,48000,-001048,000010,000041,000018,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +50,49000,-000823,000008,000035,000013,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +51,50000,-000514,000006,000036,000014,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +52,51000,-000152,000010,000037,000014,000042,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +53,52000,000229,000010,000036,000014,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +54,53000,000593,000011,000037,000014,000039,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +55,54000,000896,000010,000037,000014,000037,000013,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +56,55000,001116,000010,000037,000012,000037,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +57,56000,001230,000009,000037,000013,000034,000010,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +58,57000,001227,000009,000037,000014,000033,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +59,58000,001107,000008,000036,000014,000036,000016,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +60,59000,000881,000010,000037,000014,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +61,60000,000570,000009,000036,000014,000031,000015,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +62,61000,000209,000009,000036,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +63,62000,-000170,000008,000035,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +64,63000,-000532,000009,000035,000013,000033,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +65,64000,-000836,000009,000035,000013,000034,000015,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +66,65000,-001057,000009,000036,000013,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +67,66000,-001172,000007,000036,000013,000039,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +68,67000,-001169,000006,000036,000014,000037,000014,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +69,68000,-001048,000007,000036,000014,000038,000013,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +70,69000,-000823,000009,000037,000014,000040,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +71,70000,-000514,000009,000035,000014,000039,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +72,71000,-000152,000009,000036,000014,000042,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +73,72000,000229,000010,000037,000014,000036,000007,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +74,73000,000590,000009,000035,000013,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +75,74000,000894,000009,000035,000015,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +76,75000,001115,000009,000036,000013,000037,000011,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +77,76000,001230,000010,000036,000014,000036,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +78,77000,001227,000009,000036,000011,000033,000012,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +79,78000,001106,000010,000036,000014,000033,000013,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +80,79000,000881,000010,000036,000012,000031,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +81,80000,000570,000011,000037,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +82,81000,000208,000008,000036,000013,000030,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +83,82000,-000169,000009,000035,000013,000031,000016,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +84,83000,-000533,000007,000036,000014,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +85,84000,-000836,000008,000037,000014,000034,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +86,85000,-001056,000009,000034,000015,000036,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +87,86000,-001171,000010,000035,000013,000034,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +88,87000,-001168,000008,000035,000014,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +89,88000,-001047,000009,000036,000013,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +90,89000,-000822,000009,000036,000014,000039,000013,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +91,90000,-000514,000006,000037,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +92,91000,-000152,000010,000033,000012,000040,000009,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +93,92000,000229,000010,000036,000014,000040,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +94,93000,000588,000010,000037,000013,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +95,94000,000895,000010,000037,000014,000035,000009,000025,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +96,95000,001116,000009,000037,000014,000037,000010,000025,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +97,96000,001229,000009,000037,000014,000033,000013,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +98,97000,001227,000009,000037,000014,000033,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +99,98000,001106,000010,000037,000013,000033,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +100,99000,000880,000009,000038,000012,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +101,100000,000571,000008,000035,000013,000029,000013,000031,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +102,101000,000211,000008,000037,000014,000032,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +103,102000,-000171,000007,000037,000015,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +104,103000,-000531,000009,000035,000014,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +105,104000,-000838,000009,000035,000015,000034,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +106,105000,-001056,000010,000036,000014,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +107,106000,-001171,000010,000036,000013,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +108,107000,-001168,000009,000035,000013,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +109,108000,-001048,000008,000035,000014,000038,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +110,109000,-000823,000008,000037,000011,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +111,110000,-000511,000010,000036,000014,000040,000012,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +112,111000,-000152,000009,000037,000013,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +113,112000,000228,000010,000035,000013,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +114,113000,000589,000011,000033,000013,000037,000009,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +115,114000,000895,000009,000037,000013,000037,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +116,115000,001116,000010,000036,000012,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +117,116000,001230,000010,000038,000011,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +118,117000,001226,000010,000037,000014,000033,000012,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +119,118000,001107,000010,000038,000013,000031,000013,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +120,119000,000881,000009,000036,000011,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +121,120000,000573,000010,000032,000008,000031,000015,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +122,121000,000209,000009,000036,000013,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +123,122000,-000171,000009,000036,000014,000032,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +124,123000,-000531,000008,000035,000014,000029,000015,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +125,124000,-000836,000009,000035,000013,000033,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +126,125000,-001060,000005,000036,000014,000035,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +127,126000,-001172,000009,000036,000013,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +128,127000,-001168,000009,000036,000012,000039,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +129,128000,-001048,000009,000037,000013,000037,000011,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +130,129000,-000822,000009,000035,000014,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +131,130000,-000513,000010,000036,000014,000041,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +132,131000,-000154,000009,000036,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +133,132000,000227,000009,000035,000013,000041,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +134,133000,000591,000010,000038,000015,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +135,134000,000895,000009,000038,000014,000038,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +136,135000,001116,000009,000037,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +137,136000,001231,000009,000037,000014,000033,000010,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +138,137000,001226,000007,000037,000013,000034,000012,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +139,138000,001105,000008,000037,000014,000031,000014,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +140,139000,000877,000006,000036,000014,000031,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +141,140000,000573,000009,000037,000014,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +142,141000,000209,000009,000035,000012,000029,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +143,142000,-000171,000008,000035,000013,000029,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +144,143000,-000531,000008,000037,000014,000028,000010,000031,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +145,144000,-000837,000008,000036,000014,000034,000015,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +146,145000,-001058,000008,000035,000013,000035,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +147,146000,-001172,000008,000035,000014,000036,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +148,147000,-001167,000010,000032,000009,000039,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +149,148000,-001048,000009,000035,000014,000039,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +150,149000,-000822,000011,000036,000013,000039,000013,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +151,150000,-000513,000008,000037,000013,000040,000011,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +152,151000,-000154,000007,000036,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +153,152000,000230,000010,000035,000013,000040,000010,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +154,153000,000589,000010,000038,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +155,154000,000896,000008,000035,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +156,155000,001114,000010,000037,000013,000039,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +157,156000,001230,000009,000038,000013,000035,000012,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +158,157000,001228,000009,000036,000014,000034,000011,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +159,158000,001107,000010,000037,000015,000032,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +160,159000,000880,000009,000036,000013,000031,000014,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +161,160000,000570,000009,000036,000013,000031,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +162,161000,000207,000008,000036,000012,000031,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +163,162000,-000170,000009,000037,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +164,163000,-000531,000008,000036,000013,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +165,164000,-000837,000008,000036,000012,000033,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +166,165000,-001057,000008,000037,000014,000035,000017,000038,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +167,166000,-001172,000008,000036,000014,000036,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +168,167000,-001170,000009,000037,000014,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +169,168000,-001049,000008,000037,000014,000039,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +170,169000,-000822,000009,000035,000014,000037,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +171,170000,-000512,000008,000037,000013,000040,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +172,171000,-000153,000008,000037,000013,000041,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +173,172000,000228,000009,000037,000013,000041,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +174,173000,000591,000010,000036,000012,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +175,174000,000895,000010,000036,000014,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +176,175000,001115,000009,000037,000013,000035,000012,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +177,176000,001230,000010,000038,000013,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +178,177000,001228,000011,000037,000013,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +179,178000,001107,000009,000037,000014,000033,000014,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +180,179000,000879,000008,000037,000014,000033,000015,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +181,180000,000574,000011,000037,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +182,181000,000210,000009,000037,000014,000030,000016,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +183,182000,-000170,000010,000037,000013,000030,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +184,183000,-000531,000008,000035,000011,000030,000014,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +185,184000,-000836,000009,000036,000013,000035,000018,000034,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +186,185000,-001057,000008,000035,000014,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +187,186000,-001170,000009,000036,000013,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +188,187000,-001168,000011,000037,000013,000038,000014,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +189,188000,-001047,000010,000037,000015,000037,000014,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +190,189000,-000821,000009,000036,000013,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +191,190000,-000515,000010,000037,000012,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +192,191000,-000152,000009,000037,000013,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +193,192000,000230,000010,000038,000013,000041,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +194,193000,000590,000011,000035,000013,000040,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +195,194000,000896,000011,000036,000012,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +196,195000,001115,000009,000035,000011,000035,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +197,196000,001230,000010,000037,000014,000032,000009,000028,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +198,197000,001227,000011,000038,000014,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +199,198000,001106,000011,000036,000014,000032,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +200,199000,000881,000011,000035,000014,000031,000015,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +201,17092000,-000512,000011,000037,000013,000039,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +202,17093000,-000152,000010,000037,000013,000041,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +203,17094000,000227,000011,000036,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +204,17095000,000590,000009,000036,000013,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +205,17096000,000895,000008,000035,000013,000038,000010,000024,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +206,17097000,001116,000009,000038,000015,000036,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +207,17098000,001228,000008,000036,000013,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +208,17099000,001227,000010,000037,000014,000034,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +209,17100000,001106,000010,000036,000013,000032,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +210,17101000,000881,000010,000036,000013,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +211,17102000,000571,000009,000040,000015,000033,000017,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +212,17103000,000210,000010,000037,000014,000032,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +213,17104000,-000170,000009,000036,000015,000033,000016,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +214,17105000,-000532,000010,000037,000015,000031,000015,000035,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +215,17106000,-000837,000008,000035,000013,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +216,17107000,-001056,000009,000037,000013,000035,000017,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +217,17108000,-001173,000009,000031,000009,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +218,17109000,-001168,000009,000035,000014,000037,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +219,17110000,-001047,000008,000035,000013,000040,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +220,17111000,-000823,000009,000037,000013,000039,000014,000026,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +221,17112000,-000515,000008,000036,000013,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +222,17113000,-000152,000009,000036,000014,000039,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +223,17114000,000228,000009,000037,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +224,17115000,000589,000010,000037,000014,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +225,17116000,000895,000010,000035,000012,000038,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +226,17117000,001115,000009,000037,000014,000033,000006,000028,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +227,17118000,001230,000010,000038,000014,000036,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +228,17119000,001227,000010,000035,000014,000033,000012,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +229,17120000,001107,000011,000037,000013,000034,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +230,17121000,000881,000010,000036,000014,000031,000013,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +231,17122000,000571,000010,000040,000013,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +232,17123000,000209,000008,000038,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +233,17124000,-000171,000009,000036,000014,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +234,17125000,-000531,000008,000036,000012,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +235,17126000,-000836,000011,000036,000014,000035,000017,000035,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +236,17127000,-001057,000009,000037,000013,000035,000015,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +237,17128000,-001172,000008,000036,000013,000037,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +238,17129000,-001163,000012,000036,000014,000038,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +239,17130000,-001048,000009,000036,000013,000039,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +240,17131000,-000822,000008,000036,000013,000040,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +241,17132000,-000512,000009,000037,000014,000041,000014,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +242,17133000,-000152,000009,000036,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +243,17134000,000228,000009,000035,000014,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +244,17135000,000590,000010,000035,000013,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +245,17136000,000895,000010,000037,000013,000038,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +246,17137000,001114,000008,000037,000013,000037,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +247,17138000,001232,000013,000033,000012,000034,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +248,17139000,001226,000010,000036,000012,000033,000012,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +249,17140000,001106,000010,000037,000014,000033,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +250,17141000,000881,000007,000036,000015,000031,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +251,17142000,000570,000009,000036,000013,000030,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +252,17143000,000209,000008,000037,000014,000031,000017,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +253,17144000,-000168,000010,000035,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +254,17145000,-000532,000008,000035,000014,000033,000018,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +255,17146000,-000836,000008,000035,000014,000033,000016,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +256,17147000,-001056,000008,000036,000013,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +257,17148000,-001172,000008,000038,000015,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +258,17149000,-001169,000008,000036,000014,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +259,17150000,-001048,000009,000035,000015,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +260,17151000,-000823,000008,000036,000012,000041,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +261,17152000,-000511,000010,000037,000014,000041,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +262,17153000,-000153,000008,000036,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +263,17154000,000230,000010,000036,000014,000041,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +264,17155000,000589,000008,000038,000013,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +265,17156000,000895,000009,000036,000014,000038,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +266,17157000,001115,000009,000037,000014,000037,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +267,17158000,001228,000008,000037,000013,000035,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +268,17159000,001222,000005,000038,000013,000032,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +269,17160000,001106,000010,000038,000014,000031,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +270,17161000,000881,000010,000037,000014,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +271,17162000,000570,000009,000038,000015,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +272,17163000,000209,000010,000036,000013,000027,000011,000034,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +273,17164000,-000170,000009,000035,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +274,17165000,-000531,000010,000034,000013,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +275,17166000,-000837,000010,000035,000011,000034,000016,000036,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +276,17167000,-001057,000009,000036,000013,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +277,17168000,-001172,000009,000036,000012,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +278,17169000,-001169,000008,000036,000011,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +279,17170000,-001049,000008,000036,000013,000037,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +280,17171000,-000823,000010,000036,000014,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +281,17172000,-000516,000006,000035,000012,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +282,17173000,-000152,000009,000035,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +283,17174000,000229,000009,000035,000013,000040,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +284,17175000,000589,000009,000040,000017,000037,000008,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +285,17176000,000895,000010,000037,000015,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +286,17177000,001117,000009,000037,000015,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +287,17178000,001229,000010,000036,000015,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +288,17179000,001227,000010,000037,000014,000033,000011,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +289,17180000,001106,000010,000036,000014,000031,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +290,17181000,000879,000008,000040,000017,000032,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +291,17182000,000570,000009,000035,000012,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +292,17183000,000209,000009,000036,000013,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +293,17184000,-000170,000007,000036,000013,000032,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +294,17185000,-000531,000009,000035,000013,000036,000019,000033,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +295,17186000,-000836,000008,000036,000013,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +296,17187000,-001056,000009,000035,000013,000035,000018,000034,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +297,17188000,-001171,000008,000036,000013,000036,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +298,17189000,-001170,000009,000035,000011,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +299,17190000,-001048,000009,000036,000014,000039,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +300,17191000,-000821,000008,000035,000013,000039,000012,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +301,17192000,-000514,000009,000035,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +302,17193000,-000152,000009,000036,000015,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +303,17194000,000231,000011,000039,000015,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +304,17195000,000591,000010,000036,000014,000039,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +305,17196000,000895,000010,000036,000012,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +306,17197000,001116,000009,000037,000015,000035,000009,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +307,17198000,001230,000009,000036,000014,000033,000011,000026,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +308,17199000,001226,000009,000037,000013,000034,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +309,17200000,001104,000008,000037,000014,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +310,17201000,000880,000010,000037,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +311,17202000,000571,000008,000037,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +312,17203000,000209,000009,000035,000012,000031,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +313,17204000,-000171,000009,000035,000013,000031,000017,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +314,17205000,-000531,000009,000036,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +315,17206000,-000836,000008,000035,000013,000033,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +316,17207000,-001057,000008,000035,000014,000034,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +317,17208000,-001173,000009,000035,000013,000036,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +318,17209000,-001168,000009,000037,000014,000037,000016,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +319,17210000,-001046,000008,000035,000013,000038,000014,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +320,17211000,-000823,000008,000036,000013,000039,000012,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +321,17212000,-000515,000008,000037,000014,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +322,17213000,-000148,000013,000035,000014,000041,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +323,17214000,000228,000008,000037,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +324,17215000,000590,000010,000036,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +325,17216000,000895,000010,000038,000014,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +326,17217000,001116,000009,000037,000014,000036,000008,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +327,17218000,001230,000009,000038,000013,000034,000012,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +328,17219000,001227,000010,000037,000015,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +329,17220000,001106,000009,000038,000014,000032,000013,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +330,17221000,000880,000009,000036,000013,000031,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +331,17222000,000575,000012,000033,000010,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +332,17223000,000209,000010,000037,000013,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +333,17224000,-000170,000007,000035,000013,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +334,17225000,-000531,000009,000036,000013,000034,000017,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +335,17226000,-000837,000008,000036,000013,000033,000016,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +336,17227000,-001056,000009,000037,000014,000035,000016,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +337,17228000,-001172,000008,000036,000012,000037,000016,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +338,17229000,-001169,000009,000036,000012,000036,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +339,17230000,-001048,000009,000035,000012,000036,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +340,17231000,-000821,000010,000036,000014,000037,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +341,17232000,-000512,000009,000036,000013,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +342,17233000,-000153,000009,000037,000014,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +343,17234000,000228,000009,000036,000013,000041,000011,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +344,17235000,000590,000009,000042,000018,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +345,17236000,000896,000011,000037,000013,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +346,17237000,001115,000011,000036,000014,000036,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +347,17238000,001230,000010,000037,000014,000036,000012,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +348,17239000,001228,000010,000036,000014,000033,000012,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +349,17240000,001109,000011,000037,000014,000032,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +350,17241000,000886,000014,000037,000014,000032,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +351,17242000,000571,000009,000037,000014,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +352,17243000,000209,000009,000037,000012,000030,000015,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +353,17244000,-000171,000008,000038,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +354,17245000,-000531,000009,000036,000011,000028,000011,000034,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +355,17246000,-000836,000009,000035,000014,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +356,17247000,-001056,000009,000036,000013,000034,000016,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +357,17248000,-001172,000008,000034,000013,000037,000016,000034,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +358,17249000,-001164,000011,000036,000015,000037,000014,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +359,17250000,-001048,000008,000036,000013,000039,000013,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +360,17251000,-000823,000008,000035,000014,000042,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +361,17252000,-000514,000008,000035,000013,000041,000011,000025,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +362,17253000,-000151,000010,000038,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +363,17254000,000228,000009,000036,000013,000041,000008,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +364,17255000,000590,000009,000037,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +365,17256000,000895,000009,000036,000013,000038,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +366,17257000,001116,000010,000040,000017,000037,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +367,17258000,001231,000009,000038,000013,000036,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +368,17259000,001226,000009,000038,000014,000034,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +369,17260000,001107,000009,000037,000013,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +370,17261000,000880,000008,000036,000013,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +371,17262000,000570,000009,000035,000013,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +372,17263000,000213,000013,000038,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +373,17264000,-000170,000009,000037,000014,000031,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +374,17265000,-000532,000009,000036,000014,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +375,17266000,-000836,000008,000036,000013,000035,000016,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +376,17267000,-001058,000008,000035,000012,000036,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +377,17268000,-001172,000007,000036,000013,000037,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +378,17269000,-001169,000009,000036,000014,000038,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +379,17270000,-001048,000009,000035,000012,000037,000013,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +380,17271000,-000823,000009,000037,000014,000044,000016,000029,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +381,17272000,-000512,000010,000035,000014,000041,000012,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +382,17273000,-000152,000010,000035,000012,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +383,17274000,000229,000010,000034,000013,000042,000011,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +384,17275000,000590,000010,000035,000014,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +385,17276000,000895,000011,000040,000016,000038,000009,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +386,17277000,001115,000011,000036,000013,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +387,17278000,001229,000010,000037,000014,000033,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +388,17279000,001227,000008,000036,000014,000033,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +389,17280000,001106,000009,000037,000014,000033,000012,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +390,17281000,000881,000009,000036,000014,000033,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +391,17282000,000577,000013,000036,000014,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +392,17283000,000209,000009,000037,000014,000031,000017,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +393,17284000,-000170,000008,000035,000012,000029,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +394,17285000,-000532,000009,000037,000014,000033,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +395,17286000,-000836,000007,000035,000014,000036,000018,000033,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +396,17287000,-001057,000008,000035,000014,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +397,17288000,-001172,000008,000033,000014,000036,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +398,17289000,-001168,000009,000036,000014,000036,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +399,17290000,-001048,000008,000037,000014,000039,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +400,17291000,-000824,000009,000035,000013,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +401,17092000,-001057,000009,000035,000014,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +402,17093000,-001171,000008,000035,000013,000037,000014,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +403,17094000,-001168,000008,000035,000013,000038,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +404,17095000,-001047,000010,000035,000012,000039,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +405,17096000,-000825,000008,000035,000012,000040,000014,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +406,17097000,-000514,000008,000036,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +407,17098000,-000151,000010,000037,000013,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +408,17099000,000228,000009,000036,000012,000039,000010,000025,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +409,17100000,000591,000009,000037,000014,000038,000010,000022,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +410,17101000,000896,000010,000037,000015,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +411,17102000,001114,000007,000037,000014,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +412,17103000,001229,000008,000036,000014,000035,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +413,17104000,001227,000009,000037,000013,000033,000011,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +414,17105000,001106,000008,000037,000014,000033,000013,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +415,17106000,000881,000009,000037,000015,000033,000016,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +416,17107000,000570,000010,000037,000013,000032,000017,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +417,17108000,000209,000009,000036,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +418,17109000,-000170,000009,000036,000011,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +419,17110000,-000531,000007,000035,000012,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +420,17111000,-000838,000007,000035,000013,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +421,17112000,-001059,000009,000037,000015,000037,000017,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +422,17113000,-001171,000010,000036,000013,000036,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +423,17114000,-001168,000009,000035,000013,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +424,17115000,-001047,000008,000036,000013,000039,000014,000035,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +425,17116000,-000823,000007,000036,000013,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +426,17117000,-000512,000008,000037,000015,000040,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +427,17118000,-000153,000009,000035,000013,000040,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +428,17119000,000229,000011,000037,000013,000040,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +429,17120000,000591,000010,000040,000017,000041,000012,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +430,17121000,000895,000009,000036,000015,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +431,17122000,001115,000010,000039,000014,000035,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +432,17123000,001230,000009,000037,000013,000034,000010,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +433,17124000,001228,000010,000037,000013,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +434,17125000,001106,000010,000037,000012,000033,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +435,17126000,000880,000008,000037,000013,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +436,17127000,000571,000010,000041,000017,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +437,17128000,000209,000010,000037,000015,000032,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +438,17129000,-000170,000010,000037,000014,000031,000017,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +439,17130000,-000531,000009,000035,000014,000031,000015,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +440,17131000,-000836,000007,000035,000013,000034,000016,000037,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +441,17132000,-001060,000008,000035,000013,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +442,17133000,-001171,000008,000035,000014,000037,000016,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +443,17134000,-001168,000009,000037,000013,000039,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +444,17135000,-001048,000008,000035,000013,000039,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +445,17136000,-000823,000009,000035,000014,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +446,17137000,-000514,000009,000036,000014,000041,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +447,17138000,-000152,000009,000037,000014,000041,000011,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +448,17139000,000228,000010,000036,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +449,17140000,000590,000009,000036,000014,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +450,17141000,000895,000010,000041,000019,000037,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +451,17142000,001116,000011,000038,000014,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +452,17143000,001230,000011,000037,000013,000035,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +453,17144000,001228,000010,000037,000014,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +454,17145000,001106,000010,000036,000013,000030,000011,000029,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +455,17146000,000881,000010,000037,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +456,17147000,000571,000008,000037,000013,000030,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +457,17148000,000206,000003,000037,000014,000030,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +458,17149000,-000170,000009,000036,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +459,17150000,-000532,000008,000036,000013,000033,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +460,17151000,-000836,000007,000038,000014,000034,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +461,17152000,-001057,000010,000035,000012,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +462,17153000,-001171,000008,000035,000014,000036,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +463,17154000,-001168,000008,000036,000014,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +464,17155000,-001049,000008,000036,000014,000040,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +465,17156000,-000823,000008,000033,000010,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +466,17157000,-000513,000008,000035,000014,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +467,17158000,-000154,000009,000036,000013,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +468,17159000,000228,000008,000037,000012,000043,000013,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +469,17160000,000591,000010,000036,000013,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +470,17161000,000897,000010,000036,000014,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +471,17162000,001116,000010,000038,000015,000036,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +472,17163000,001229,000010,000037,000013,000036,000010,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +473,17164000,001228,000010,000037,000014,000034,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +474,17165000,001107,000009,000039,000014,000035,000015,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +475,17166000,000881,000009,000037,000013,000033,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +476,17167000,000570,000009,000037,000014,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +477,17168000,000209,000009,000037,000014,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +478,17169000,-000172,000008,000036,000014,000032,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +479,17170000,-000533,000008,000035,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +480,17171000,-000837,000009,000033,000010,000035,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +481,17172000,-001057,000009,000035,000014,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +482,17173000,-001172,000010,000036,000014,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +483,17174000,-001168,000008,000036,000013,000037,000015,000037,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +484,17175000,-001046,000011,000036,000013,000039,000015,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +485,17176000,-000822,000008,000036,000014,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +486,17177000,-000514,000008,000036,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +487,17178000,-000152,000008,000038,000016,000037,000009,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +488,17179000,000228,000009,000037,000013,000039,000009,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +489,17180000,000591,000008,000037,000013,000040,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +490,17181000,000895,000010,000036,000013,000037,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +491,17182000,001116,000008,000037,000013,000036,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +492,17183000,001229,000010,000036,000014,000034,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +493,17184000,001228,000010,000041,000018,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +494,17185000,001106,000010,000037,000013,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +495,17186000,000882,000010,000037,000013,000031,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +496,17187000,000571,000009,000037,000012,000033,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +497,17188000,000211,000009,000037,000014,000031,000015,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +498,17189000,-000173,000007,000035,000014,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +499,17190000,-000535,000005,000036,000013,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +500,17191000,-000838,000008,000036,000012,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +501,17192000,-001057,000009,000037,000014,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +502,17193000,-001172,000009,000035,000014,000033,000011,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +503,17194000,-001168,000008,000035,000014,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +504,17195000,-001047,000010,000035,000013,000039,000013,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +505,17196000,-000822,000008,000038,000014,000039,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +506,17197000,-000514,000008,000034,000011,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +507,17198000,-000152,000010,000036,000013,000042,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +508,17199000,000228,000008,000035,000013,000040,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +509,17200000,000589,000010,000037,000014,000041,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +510,17201000,000895,000010,000037,000014,000037,000013,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +511,17202000,001118,000012,000038,000015,000036,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +512,17203000,001232,000012,000035,000014,000036,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +513,17204000,001227,000010,000036,000013,000033,000011,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +514,17205000,001106,000009,000035,000013,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +515,17206000,000879,000008,000037,000014,000035,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +516,17207000,000571,000010,000036,000013,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +517,17208000,000211,000010,000035,000014,000031,000014,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +518,17209000,-000171,000009,000036,000014,000031,000016,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +519,17210000,-000532,000009,000036,000014,000032,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +520,17211000,-000836,000010,000037,000014,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +521,17212000,-001057,000009,000034,000011,000035,000017,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +522,17213000,-001172,000010,000037,000012,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +523,17214000,-001169,000008,000035,000014,000038,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +524,17215000,-001047,000008,000036,000013,000040,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +525,17216000,-000824,000008,000036,000014,000039,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +526,17217000,-000513,000009,000036,000014,000041,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +527,17218000,-000153,000009,000036,000011,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +528,17219000,000228,000009,000041,000017,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +529,17220000,000591,000010,000035,000013,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +530,17221000,000895,000010,000038,000015,000039,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +531,17222000,001114,000009,000036,000013,000036,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +532,17223000,001230,000009,000037,000013,000035,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +533,17224000,001226,000010,000036,000013,000033,000011,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +534,17225000,001109,000011,000037,000013,000032,000013,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +535,17226000,000881,000010,000037,000013,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +536,17227000,000571,000009,000038,000013,000031,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +537,17228000,000209,000009,000037,000011,000030,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +538,17229000,-000170,000009,000035,000013,000031,000014,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +539,17230000,-000531,000008,000036,000013,000034,000014,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +540,17231000,-000838,000009,000037,000014,000033,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +541,17232000,-001058,000009,000037,000012,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +542,17233000,-001172,000007,000034,000012,000034,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +543,17234000,-001168,000009,000035,000012,000039,000018,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +544,17235000,-001047,000008,000036,000013,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +545,17236000,-000822,000009,000036,000013,000041,000014,000032,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +546,17237000,-000512,000010,000036,000013,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +547,17238000,-000152,000010,000036,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +548,17239000,000228,000009,000036,000011,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +549,17240000,000589,000010,000036,000012,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +550,17241000,000895,000009,000037,000013,000037,000008,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +551,17242000,001116,000009,000038,000014,000035,000011,000022,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +552,17243000,001230,000009,000035,000013,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +553,17244000,001227,000011,000037,000014,000031,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +554,17245000,001107,000010,000036,000014,000032,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +555,17246000,000881,000010,000036,000014,000031,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +556,17247000,000571,000010,000038,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +557,17248000,000209,000008,000035,000013,000029,000014,000034,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +558,17249000,-000170,000009,000035,000013,000032,000016,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +559,17250000,-000531,000009,000034,000012,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +560,17251000,-000836,000009,000036,000014,000034,000015,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +561,17252000,-001057,000008,000035,000013,000037,000017,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +562,17253000,-001170,000010,000031,000009,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +563,17254000,-001168,000008,000036,000012,000039,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +564,17255000,-001048,000008,000037,000013,000039,000014,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +565,17256000,-000821,000010,000036,000014,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +566,17257000,-000517,000005,000036,000013,000040,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +567,17258000,-000154,000008,000036,000012,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +568,17259000,000229,000010,000036,000013,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +569,17260000,000591,000010,000040,000016,000042,000013,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +570,17261000,000895,000009,000036,000014,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +571,17262000,001116,000009,000036,000013,000036,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +572,17263000,001230,000009,000037,000013,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +573,17264000,001226,000009,000037,000013,000033,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +574,17265000,001106,000010,000037,000013,000031,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +575,17266000,000878,000008,000035,000012,000033,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +576,17267000,000573,000010,000036,000015,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +577,17268000,000209,000009,000037,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +578,17269000,-000171,000009,000036,000012,000032,000016,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +579,17270000,-000533,000008,000037,000012,000031,000016,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +580,17271000,-000836,000009,000035,000014,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +581,17272000,-001054,000011,000038,000013,000037,000017,000033,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +582,17273000,-001170,000010,000035,000013,000035,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +583,17274000,-001169,000008,000037,000014,000040,000015,000032,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +584,17275000,-001047,000008,000036,000012,000041,000016,000031,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +585,17276000,-000822,000008,000035,000014,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +586,17277000,-000513,000008,000036,000013,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +587,17278000,-000152,000008,000035,000014,000040,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +588,17279000,000228,000011,000038,000015,000038,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +589,17280000,000589,000010,000036,000014,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +590,17281000,000893,000009,000037,000014,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +591,17282000,001114,000010,000036,000014,000035,000009,000026,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +592,17283000,001229,000009,000037,000013,000035,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +593,17284000,001226,000009,000039,000015,000034,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +594,17285000,001102,000007,000036,000013,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +595,17286000,000881,000008,000037,000013,000031,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +596,17287000,000571,000009,000037,000014,000033,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +597,17288000,000209,000009,000035,000011,000029,000015,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +598,17289000,-000170,000008,000036,000014,000031,000014,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +599,17290000,-000532,000008,000036,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +600,17291000,-000836,000008,000036,000014,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +601,17092000,000590,000009,000036,000014,000040,000010,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +602,17093000,000897,000009,000038,000014,000037,000011,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +603,17094000,001115,000010,000036,000014,000034,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +604,17095000,001228,000008,000037,000014,000035,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +605,17096000,001225,000010,000035,000013,000033,000013,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +606,17097000,001106,000010,000037,000013,000032,000012,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +607,17098000,000882,000010,000036,000014,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +608,17099000,000570,000009,000037,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +609,17100000,000209,000009,000036,000013,000031,000016,000036,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +610,17101000,-000172,000007,000036,000013,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +611,17102000,-000530,000010,000035,000012,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +612,17103000,-000836,000008,000035,000014,000033,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +613,17104000,-001057,000008,000035,000012,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +614,17105000,-001172,000009,000037,000016,000038,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +615,17106000,-001168,000008,000035,000014,000037,000013,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +616,17107000,-001049,000008,000035,000014,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +617,17108000,-000823,000008,000034,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +618,17109000,-000514,000008,000035,000011,000040,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +619,17110000,-000150,000012,000034,000011,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +620,17111000,000228,000009,000035,000013,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +621,17112000,000590,000010,000037,000014,000038,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +622,17113000,000897,000010,000037,000013,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +623,17114000,001114,000009,000037,000013,000037,000011,000025,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +624,17115000,001230,000009,000037,000014,000034,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +625,17116000,001228,000010,000037,000013,000032,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +626,17117000,001102,000003,000038,000013,000033,000011,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +627,17118000,000881,000008,000036,000013,000032,000013,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +628,17119000,000570,000009,000034,000013,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +629,17120000,000210,000008,000035,000011,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +630,17121000,-000170,000009,000037,000014,000028,000013,000034,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +631,17122000,-000532,000009,000035,000014,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +632,17123000,-000836,000008,000037,000014,000034,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +633,17124000,-001057,000009,000036,000013,000035,000015,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +634,17125000,-001172,000009,000035,000013,000036,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +635,17126000,-001167,000010,000036,000011,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +636,17127000,-001047,000010,000037,000013,000040,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +637,17128000,-000823,000007,000036,000014,000039,000011,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +638,17129000,-000514,000009,000035,000012,000041,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +639,17130000,-000152,000009,000037,000014,000040,000010,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +640,17131000,000231,000011,000037,000014,000041,000011,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +641,17132000,000590,000010,000037,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +642,17133000,000896,000009,000037,000013,000039,000009,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +643,17134000,001114,000010,000037,000013,000036,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +644,17135000,001230,000009,000037,000013,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +645,17136000,001228,000010,000037,000014,000030,000007,000030,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +646,17137000,001108,000010,000037,000014,000032,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +647,17138000,000881,000009,000036,000015,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +648,17139000,000573,000010,000037,000015,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +649,17140000,000209,000009,000037,000014,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +650,17141000,-000168,000011,000037,000013,000031,000015,000035,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +651,17142000,-000532,000009,000040,000018,000031,000015,000034,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +652,17143000,-000836,000010,000036,000012,000033,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +653,17144000,-001058,000010,000037,000014,000035,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +654,17145000,-001172,000009,000036,000014,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +655,17146000,-001168,000009,000036,000014,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +656,17147000,-001051,000005,000036,000013,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +657,17148000,-000823,000008,000036,000013,000039,000012,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +658,17149000,-000513,000008,000035,000011,000039,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +659,17150000,-000153,000009,000040,000018,000041,000014,000028,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +660,17151000,000228,000009,000036,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +661,17152000,000589,000010,000036,000013,000040,000009,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +662,17153000,000897,000011,000037,000014,000038,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +663,17154000,001115,000010,000038,000014,000036,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +664,17155000,001230,000008,000038,000013,000035,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +665,17156000,001224,000009,000038,000014,000033,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +666,17157000,001107,000010,000037,000015,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +667,17158000,000880,000011,000038,000013,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +668,17159000,000571,000010,000037,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +669,17160000,000209,000008,000038,000013,000031,000014,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +670,17161000,-000170,000008,000036,000014,000031,000016,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +671,17162000,-000530,000008,000037,000013,000031,000017,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +672,17163000,-000836,000009,000036,000013,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +673,17164000,-001058,000008,000035,000012,000035,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +674,17165000,-001170,000009,000039,000014,000035,000014,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +675,17166000,-001168,000009,000035,000012,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +676,17167000,-001048,000009,000038,000011,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +677,17168000,-000823,000009,000035,000013,000040,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +678,17169000,-000514,000008,000036,000013,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +679,17170000,-000153,000009,000035,000014,000041,000012,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +680,17171000,000228,000010,000036,000013,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +681,17172000,000590,000009,000036,000014,000039,000009,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +682,17173000,000893,000010,000036,000014,000036,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +683,17174000,001114,000009,000037,000015,000036,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +684,17175000,001232,000010,000038,000014,000035,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +685,17176000,001228,000011,000038,000014,000033,000012,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +686,17177000,001107,000009,000037,000013,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +687,17178000,000881,000010,000037,000015,000031,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +688,17179000,000571,000009,000036,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +689,17180000,000209,000009,000037,000014,000029,000013,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +690,17181000,-000171,000009,000035,000014,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +691,17182000,-000532,000009,000037,000015,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +692,17183000,-000837,000008,000035,000011,000033,000016,000035,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +693,17184000,-001058,000008,000035,000013,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +694,17185000,-001172,000010,000031,000009,000037,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +695,17186000,-001169,000009,000034,000011,000038,000015,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +696,17187000,-001048,000009,000036,000013,000040,000014,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +697,17188000,-000823,000009,000036,000014,000040,000012,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +698,17189000,-000512,000010,000035,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +699,17190000,-000152,000009,000035,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +700,17191000,000228,000010,000035,000012,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +701,17192000,000590,000010,000038,000015,000041,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +702,17193000,000895,000010,000036,000014,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +703,17194000,001115,000010,000037,000014,000036,000010,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +704,17195000,001230,000009,000037,000014,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +705,17196000,001226,000010,000037,000012,000034,000012,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +706,17197000,001107,000010,000037,000013,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +707,17198000,000884,000013,000039,000016,000033,000013,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +708,17199000,000573,000011,000037,000013,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +709,17200000,000210,000010,000037,000013,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +710,17201000,-000170,000009,000037,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +711,17202000,-000531,000009,000036,000014,000033,000015,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +712,17203000,-000838,000006,000035,000013,000033,000016,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +713,17204000,-001056,000008,000035,000014,000035,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +714,17205000,-001172,000008,000036,000013,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +715,17206000,-001169,000008,000039,000015,000038,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +716,17207000,-001048,000008,000035,000014,000040,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +717,17208000,-000823,000008,000035,000013,000039,000014,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +718,17209000,-000514,000009,000037,000013,000039,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +719,17210000,-000154,000008,000036,000011,000039,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +720,17211000,000228,000009,000031,000010,000039,000011,000025,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +721,17212000,000590,000009,000036,000014,000040,000010,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +722,17213000,000895,000010,000036,000013,000037,000010,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +723,17214000,001116,000010,000036,000014,000037,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +724,17215000,001230,000009,000036,000014,000033,000010,000022,000016,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +725,17216000,001226,000007,000036,000012,000033,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +726,17217000,001102,000004,000037,000013,000031,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +727,17218000,000881,000009,000037,000014,000033,000014,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +728,17219000,000573,000009,000038,000013,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +729,17220000,000210,000008,000036,000011,000031,000013,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +730,17221000,-000171,000010,000036,000013,000033,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +731,17222000,-000531,000009,000035,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +732,17223000,-000836,000008,000036,000014,000035,000016,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +733,17224000,-001056,000009,000037,000013,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +734,17225000,-001169,000013,000037,000013,000036,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +735,17226000,-001168,000008,000035,000014,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +736,17227000,-001047,000009,000037,000013,000037,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +737,17228000,-000823,000009,000035,000013,000039,000013,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +738,17229000,-000515,000009,000036,000014,000039,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +739,17230000,-000158,000003,000036,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +740,17231000,000228,000009,000036,000012,000039,000012,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +741,17232000,000591,000008,000035,000012,000040,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +742,17233000,000895,000008,000040,000017,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +743,17234000,001117,000009,000037,000014,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +744,17235000,001230,000009,000037,000014,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +745,17236000,001226,000011,000038,000014,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +746,17237000,001106,000009,000037,000013,000032,000014,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +747,17238000,000881,000010,000036,000012,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +748,17239000,000568,000007,000035,000012,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +749,17240000,000210,000009,000037,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +750,17241000,-000168,000009,000036,000014,000031,000016,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +751,17242000,-000533,000010,000036,000013,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +752,17243000,-000836,000010,000035,000011,000033,000016,000036,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +753,17244000,-001057,000008,000036,000013,000036,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +754,17245000,-001170,000010,000036,000014,000037,000018,000033,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +755,17246000,-001169,000009,000035,000014,000038,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +756,17247000,-001049,000009,000036,000014,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +757,17248000,-000823,000008,000035,000015,000039,000011,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +758,17249000,-000513,000010,000037,000012,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +759,17250000,-000153,000010,000035,000012,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +760,17251000,000229,000010,000036,000013,000038,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +761,17252000,000591,000011,000037,000014,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +762,17253000,000894,000010,000036,000014,000037,000011,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +763,17254000,001117,000011,000036,000015,000037,000009,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +764,17255000,001230,000010,000036,000014,000036,000012,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +765,17256000,001226,000009,000036,000013,000034,000012,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +766,17257000,001108,000009,000037,000014,000034,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +767,17258000,000875,000004,000037,000014,000031,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +768,17259000,000570,000010,000036,000015,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +769,17260000,000209,000008,000037,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +770,17261000,-000170,000010,000036,000012,000030,000015,000033,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +771,17262000,-000531,000009,000036,000014,000033,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +772,17263000,-000837,000008,000037,000014,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +773,17264000,-001057,000008,000035,000012,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +774,17265000,-001173,000008,000036,000013,000036,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +775,17266000,-001170,000009,000033,000009,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +776,17267000,-001048,000010,000036,000013,000040,000014,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +777,17268000,-000822,000007,000037,000013,000038,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +778,17269000,-000515,000008,000036,000013,000042,000014,000029,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +779,17270000,-000151,000009,000036,000015,000038,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +780,17271000,000225,000006,000036,000014,000038,000009,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +781,17272000,000589,000009,000037,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +782,17273000,000896,000009,000035,000012,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +783,17274000,001116,000010,000035,000012,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +784,17275000,001230,000009,000037,000014,000035,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +785,17276000,001226,000010,000037,000013,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +786,17277000,001106,000011,000036,000013,000033,000012,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +787,17278000,000881,000010,000037,000014,000031,000013,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +788,17279000,000570,000008,000036,000011,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +789,17280000,000211,000009,000035,000012,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +790,17281000,-000170,000009,000037,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +791,17282000,-000531,000010,000036,000014,000031,000016,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +792,17283000,-000836,000009,000037,000014,000034,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +793,17284000,-001056,000008,000035,000013,000034,000017,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +794,17285000,-001174,000007,000036,000014,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +795,17286000,-001169,000008,000035,000014,000037,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +796,17287000,-001047,000009,000035,000013,000039,000014,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +797,17288000,-000823,000010,000037,000014,000037,000009,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +798,17289000,-000513,000008,000035,000013,000040,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +799,17290000,-000152,000010,000035,000015,000040,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +800,17291000,000228,000009,000036,000014,000040,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +801,17092000,-000836,000010,000036,000012,000034,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +802,17093000,-001058,000008,000036,000014,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +803,17094000,-001172,000006,000035,000014,000038,000016,000034,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +804,17095000,-001168,000009,000036,000014,000037,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +805,17096000,-001043,000011,000036,000013,000040,000014,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +806,17097000,-000822,000008,000035,000013,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +807,17098000,-000512,000010,000037,000013,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +808,17099000,-000152,000009,000037,000015,000037,000009,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +809,17100000,000228,000009,000037,000013,000039,000010,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +810,17101000,000589,000010,000037,000013,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +811,17102000,000893,000009,000037,000014,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +812,17103000,001115,000009,000037,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +813,17104000,001229,000010,000038,000014,000034,000012,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +814,17105000,001230,000012,000037,000015,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +815,17106000,001107,000009,000037,000012,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +816,17107000,000881,000010,000037,000014,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +817,17108000,000570,000009,000035,000012,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +818,17109000,000209,000009,000037,000013,000029,000012,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +819,17110000,-000170,000008,000037,000013,000031,000016,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +820,17111000,-000533,000008,000036,000014,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +821,17112000,-000836,000007,000034,000013,000033,000016,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +822,17113000,-001057,000009,000035,000013,000034,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +823,17114000,-001171,000010,000036,000014,000037,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +824,17115000,-001168,000008,000035,000014,000035,000011,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +825,17116000,-001047,000008,000036,000014,000039,000014,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +826,17117000,-000824,000008,000036,000013,000039,000012,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +827,17118000,-000514,000009,000036,000014,000040,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +828,17119000,-000154,000007,000036,000013,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +829,17120000,000228,000009,000034,000011,000039,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +830,17121000,000589,000009,000038,000014,000041,000011,000027,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +831,17122000,000896,000008,000037,000014,000039,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +832,17123000,001116,000009,000037,000014,000036,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +833,17124000,001229,000010,000037,000014,000034,000011,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +834,17125000,001228,000009,000037,000013,000033,000012,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +835,17126000,001104,000007,000036,000014,000032,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +836,17127000,000881,000009,000037,000013,000030,000014,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +837,17128000,000573,000008,000037,000014,000031,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +838,17129000,000209,000009,000037,000013,000031,000014,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +839,17130000,-000169,000009,000037,000014,000029,000014,000031,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +840,17131000,-000530,000008,000037,000013,000032,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +841,17132000,-000836,000008,000036,000013,000035,000018,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +842,17133000,-001057,000010,000035,000012,000036,000016,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +843,17134000,-001170,000009,000035,000012,000037,000015,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +844,17135000,-001168,000009,000037,000014,000039,000014,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +845,17136000,-001047,000008,000036,000013,000039,000013,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +846,17137000,-000824,000009,000036,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +847,17138000,-000512,000008,000037,000013,000043,000015,000030,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +848,17139000,-000152,000008,000035,000014,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +849,17140000,000228,000008,000037,000014,000041,000012,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +850,17141000,000589,000009,000036,000014,000040,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +851,17142000,000895,000009,000036,000014,000037,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +852,17143000,001115,000010,000036,000014,000037,000010,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +853,17144000,001231,000009,000036,000014,000036,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +854,17145000,001228,000011,000037,000014,000030,000007,000029,000016,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +855,17146000,001106,000009,000037,000013,000032,000013,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +856,17147000,000881,000009,000036,000013,000031,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +857,17148000,000570,000009,000035,000013,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +858,17149000,000209,000009,000036,000012,000032,000017,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +859,17150000,-000172,000007,000035,000012,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +860,17151000,-000531,000009,000033,000011,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +861,17152000,-000836,000009,000036,000012,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +862,17153000,-001057,000007,000037,000013,000035,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +863,17154000,-001172,000009,000036,000013,000035,000015,000037,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +864,17155000,-001170,000006,000036,000014,000037,000016,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +865,17156000,-001047,000009,000037,000013,000039,000012,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +866,17157000,-000823,000008,000035,000012,000039,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +867,17158000,-000512,000009,000034,000013,000039,000010,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +868,17159000,-000152,000009,000036,000014,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +869,17160000,000228,000008,000035,000014,000039,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +870,17161000,000591,000010,000037,000013,000039,000011,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +871,17162000,000895,000010,000037,000014,000037,000010,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +872,17163000,001114,000011,000039,000013,000036,000011,000028,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +873,17164000,001232,000010,000041,000018,000035,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +874,17165000,001227,000009,000038,000013,000033,000013,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +875,17166000,001106,000011,000036,000014,000032,000013,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +876,17167000,000881,000009,000036,000014,000033,000013,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +877,17168000,000573,000009,000037,000014,000030,000015,000037,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +878,17169000,000209,000010,000036,000014,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +879,17170000,-000172,000007,000036,000014,000031,000016,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +880,17171000,-000532,000008,000036,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +881,17172000,-000836,000008,000035,000012,000033,000013,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +882,17173000,-001057,000008,000035,000013,000039,000019,000032,000022,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +883,17174000,-001170,000008,000036,000014,000035,000016,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +884,17175000,-001168,000007,000037,000014,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +885,17176000,-001047,000008,000036,000013,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +886,17177000,-000819,000012,000036,000013,000039,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +887,17178000,-000514,000008,000037,000012,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +888,17179000,-000153,000010,000038,000013,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +889,17180000,000228,000009,000036,000013,000040,000011,000025,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +890,17181000,000590,000008,000037,000014,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +891,17182000,000896,000009,000037,000013,000037,000012,000026,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +892,17183000,001116,000010,000037,000014,000036,000012,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +893,17184000,001231,000010,000035,000014,000035,000011,000029,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +894,17185000,001226,000010,000036,000013,000035,000011,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +895,17186000,001106,000008,000037,000012,000033,000013,000030,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +896,17187000,000881,000011,000037,000013,000033,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +897,17188000,000571,000008,000037,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +898,17189000,000211,000010,000035,000014,000031,000015,000032,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +899,17190000,-000170,000007,000035,000014,000031,000018,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +900,17191000,-000533,000007,000035,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +901,17192000,-000838,000010,000033,000010,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +902,17193000,-001057,000008,000036,000014,000034,000016,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +903,17194000,-001172,000008,000035,000014,000035,000015,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +904,17195000,-001169,000008,000035,000014,000038,000013,000034,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +905,17196000,-001044,000012,000037,000014,000041,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +906,17197000,-000823,000008,000035,000013,000040,000011,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +907,17198000,-000514,000009,000036,000013,000039,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +908,17199000,-000152,000009,000037,000015,000037,000009,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +909,17200000,000228,000008,000036,000014,000040,000011,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +910,17201000,000590,000009,000036,000013,000040,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +911,17202000,000895,000010,000036,000013,000040,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +912,17203000,001115,000010,000037,000014,000037,000010,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +913,17204000,001228,000009,000035,000014,000035,000011,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +914,17205000,001226,000010,000035,000014,000033,000012,000027,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +915,17206000,001106,000010,000037,000013,000033,000011,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +916,17207000,000881,000008,000037,000013,000031,000013,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +917,17208000,000570,000008,000038,000013,000030,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +918,17209000,000209,000008,000036,000014,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +919,17210000,-000170,000010,000037,000014,000033,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +920,17211000,-000532,000009,000037,000014,000032,000017,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +921,17212000,-000836,000008,000035,000012,000033,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +922,17213000,-001057,000008,000039,000015,000036,000017,000033,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +923,17214000,-001172,000010,000036,000014,000036,000015,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +924,17215000,-001168,000010,000035,000015,000037,000014,000031,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +925,17216000,-001047,000008,000037,000014,000040,000013,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +926,17217000,-000823,000007,000035,000013,000039,000013,000030,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +927,17218000,-000514,000009,000033,000010,000040,000013,000030,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +928,17219000,-000151,000010,000037,000013,000041,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +929,17220000,000228,000010,000036,000013,000038,000010,000026,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +930,17221000,000591,000009,000037,000014,000039,000011,000025,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +931,17222000,000895,000008,000038,000015,000038,000010,000027,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +932,17223000,001112,000006,000037,000014,000035,000011,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +933,17224000,001230,000010,000037,000013,000034,000011,000029,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +934,17225000,001227,000010,000035,000014,000033,000012,000028,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +935,17226000,001107,000009,000036,000012,000033,000011,000030,000018,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +936,17227000,000881,000008,000037,000014,000036,000017,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +937,17228000,000571,000009,000035,000014,000031,000015,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +938,17229000,000209,000008,000035,000013,000031,000015,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +939,17230000,-000170,000009,000036,000013,000031,000016,000033,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +940,17231000,-000531,000009,000036,000013,000032,000014,000031,000019,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +941,17232000,-000836,000009,000035,000014,000034,000015,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +942,17233000,-001057,000008,000036,000015,000035,000016,000032,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +943,17234000,-001172,000009,000035,000014,000036,000014,000032,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +944,17235000,-001169,000008,000037,000012,000042,000019,000034,000024,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +945,17236000,-001047,000008,000035,000013,000039,000014,000031,000021,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +946,17237000,-000823,000010,000036,000013,000039,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +947,17238000,-000514,000008,000036,000012,000040,000011,000029,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +948,17239000,-000152,000008,000039,000013,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +949,17240000,000228,000009,000036,000014,000035,000006,000027,000017,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 +950,17241000,000590,000011,000035,000014,000040,000011,000028,000020,999999,999999,999999,999999,999999,999999,999999,0,0,0,0,0,0,0 diff --git a/types.go b/types.go new file mode 100644 index 0000000..e14f483 --- /dev/null +++ b/types.go @@ -0,0 +1,31 @@ +package comtrade + +const ( + // dd/mm/yyyy,HH:MM:SS.mmmmmm + DateTimeLayout = "02/01/2006,15:04:05.000000" + // mm/dd/yyyy,HH:MM:SS.mmmmmm + DateTimeLayout2 = "01/02/2006,15:04:05.000000" + // mm/dd/yyyy,HH:MM:SS.mmm + CosLightDateTimeLayout = "01/02/2006,15:04:05.000" + + Rcv1991 = 1991 + Rcv1999 = 1999 + Rcv2013 = 2013 + Rcv2017 = 2017 + + TypeASCII = "ASCII" + TypeBinary = "BINARY" + TypeBinary32 = "BINARY32" + TypeFloat32 = "FLOAT32" + + NoLeapSecInRecord = 0 // 记录中没有闰秒 no leap seconds are included in the record + AddLeapSecToRecord = 1 // 在记录中增加闰秒 add leap seconds to the record + RemoveLeapSecFromRecord = 2 // 在记录中删除闰秒 remove leap seconds from the record + ClockSourceNotDefinedLeapSecFunc = 3 // 时钟源没有闰秒功能 the clock source does not have leap second functionality. + + MonthOutOfRange = "month out of range" +) + +type Parser interface { + Parse(filePath string, analogNum, digitalNum, endSamp uint32) (*Data, error) +} diff --git a/version.go b/version.go new file mode 100644 index 0000000..a5c09c3 --- /dev/null +++ b/version.go @@ -0,0 +1,3 @@ +package comtrade + +const Release = "v0.0.3"