├── .gitignore ├── bb.png ├── .babelrc ├── .travis.yml ├── src ├── util │ ├── func-util.js │ ├── get-noaa-date.js │ └── degrees-to-direction.js ├── parse-latest-observation-data.js ├── main.js ├── parse-realtime-buoy-data.js ├── parse-station-properties.js ├── parse-buoy-properties.js ├── parse-buoy-records.js ├── prop-map.js └── tide.js ├── test ├── .eslintrc ├── data │ ├── buoy-data.js │ ├── buoy-latest-obs-data.js │ ├── expected-data.js │ ├── station │ │ ├── station-name-coords-2.html │ │ └── station-name-coords.html │ ├── expected-latest-obs-data.json │ ├── tide.js │ ├── buoy-data-all.js │ └── tide-annual.txt ├── test-buoy-latest-obs.js ├── test-buoy-realtime-parsing.js ├── test-station-properties.js ├── test-util.js └── test-tide.js ├── .eslintrc ├── README.md ├── package.json ├── gulpfile.js └── dist └── buoy.min.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /coverage 3 | -------------------------------------------------------------------------------- /bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giannif/buoy-js/HEAD/bb.png -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "4.2" 4 | script: 5 | npm run lint && npm run test && npm run coveralls 6 | -------------------------------------------------------------------------------- /src/util/func-util.js: -------------------------------------------------------------------------------- 1 | import R from "ramda"; 2 | 3 | let compact = R.pipe(R.reject(R.isNil), R.filter(Boolean)), 4 | checkFinite = obj => isFinite(obj) && !isNaN(parseFloat(obj)), 5 | isDate = date => R.is(Date, date) && checkFinite(date.getTime()) 6 | 7 | export default { 8 | compact: compact, 9 | isDate: isDate 10 | } 11 | -------------------------------------------------------------------------------- /test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "env": { 4 | "mocha": true 5 | }, 6 | "rules": { 7 | "strict": 0, 8 | "semi":0, 9 | "no-multi-spaces": 0, 10 | "semi-spacing": 0, 11 | "no-irregular-whitespace ": 0, 12 | "no-unused-expressions": 0, 13 | "no-mixed-spaces-and-tabs": 0, 14 | "quotes": 0 15 | }, 16 | "extends": "eslint:recommended" 17 | } 18 | -------------------------------------------------------------------------------- /src/util/get-noaa-date.js: -------------------------------------------------------------------------------- 1 | export default date => { 2 | var d = date || new Date(), 3 | month = (d.getUTCMonth() + 1).toString(), 4 | day = d.getUTCDate().toString(); 5 | if(month.length === 1){ 6 | month = "0" + month; 7 | } 8 | if(day.length === 1){ 9 | day = "0" + day; 10 | } 11 | return d.getUTCFullYear().toString() + month + day; 12 | } 13 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "env": { 4 | "browser": true 5 | }, 6 | "rules": { 7 | "strict": 0, 8 | "semi":0, 9 | "no-multi-spaces": 0, 10 | "semi-spacing": 0, 11 | "no-irregular-whitespace ": 0, 12 | "no-mixed-spaces-and-tabs": 0, 13 | "quotes": 0, 14 | "eol-last": 0, 15 | "no-console": 0 16 | }, 17 | "extends": "eslint:recommended" 18 | } 19 | -------------------------------------------------------------------------------- /test/data/buoy-data.js: -------------------------------------------------------------------------------- 1 | export const BUOY_DATA = `#YY MM DD hh mm WDIR WSPD GST WVHT DPD APD MWD PRES ATMP WTMP DEWP VIS PTDY TIDE 2 | #yr mo dy hr mn degT m/s m/s m sec sec degT hPa degC degC degC nmi hPa ft 3 | 2015 04 29 02 52 30 6.7 MM 1.1 4 4.5 278 1012.9 22.3 15.1 MM MM MM MM 4 | 2015 04 29 01 52 30 6.7 MM 1.0 17 4.6 199 1012.5 22.1 15.2 MM MM MM MM`; 5 | -------------------------------------------------------------------------------- /src/parse-latest-observation-data.js: -------------------------------------------------------------------------------- 1 | import R from "ramda"; 2 | import parseBuoyRecords from "./parse-buoy-records" 3 | export const PARSE_ERROR = "Invalid data for parse-data.js"; 4 | 5 | /** 6 | * Data loaded from 7 | * http://www.ndbc.noaa.gov/data/latest_obs/latest_obs.txt 8 | * No json was available 9 | */ 10 | export default R.ifElse( 11 | R.is(String), 12 | parseBuoyRecords, 13 | function() { 14 | throw PARSE_ERROR 15 | } 16 | ) 17 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import parseLatestObservationData from "./parse-latest-observation-data"; 2 | import parseBuoy from "./parse-realtime-buoy-data"; 3 | import stationProperties from "./parse-station-properties"; 4 | import Tide from "./tide"; 5 | export default { 6 | build: "@@compiled", 7 | Tide: Tide, 8 | Buoy: { 9 | realTime: parseBuoy, 10 | lastestObservation: parseLatestObservationData, 11 | stationProperties: stationProperties 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /src/parse-realtime-buoy-data.js: -------------------------------------------------------------------------------- 1 | import R from "ramda"; 2 | import parseBuoyRecords from "./parse-buoy-records" 3 | export const PARSE_ERROR = "Invalid data for parse-realtime-buoy-data.js"; 4 | /** 5 | * Data loaded from 6 | * http://www.ndbc.noaa.gov/data/realtime2/{stationID}.txt 7 | * No json was available 8 | * returns an {Array} of records of buoy data 9 | */ 10 | export default (list, numberOfRecords = 10) => { 11 | if (R.is(String, list)) { 12 | return R.take(numberOfRecords, parseBuoyRecords(list)) 13 | } 14 | throw PARSE_ERROR; 15 | } 16 | -------------------------------------------------------------------------------- /test/data/buoy-latest-obs-data.js: -------------------------------------------------------------------------------- 1 | export const DATA = `#STN LAT LON YYYY MM DD hh mm WDIR WSPD GST WVHT DPD APD MWD PRES PTDY ATMP WTMP DEWP VIS TIDE BADPROP 2 | #text deg deg yr mo day hr mn degT m/s m/s m sec sec degT hPa hPa degC degC degC nmi ft x 3 | 13001 11.52 -22.98 2015 04 07 15 15 30 6.7 MM MM MM MM MM 1012.9 MM 22.3 23.5 MM MM MM x 4 | 13002 20.45 -23.09 2015 04 07 16 30 10 6.2 MM MM MM MM 280 MM MM 19.8 MM MM MM MM x 5 | 13008 14.99 -38.01 2015 04 07 17 45 70 8.2 MM MM MM MM MM 1016.9 MM 22.3 24.4 MM MM MM x 6 | 7 | `; 8 | -------------------------------------------------------------------------------- /test/data/expected-data.js: -------------------------------------------------------------------------------- 1 | export const DATA = [{ 2 | "waveHeight": 1.1, 3 | "wavePeriod": 4, 4 | "averageWavePeriod": 4.5, 5 | "date": "Wed, 29 Apr 2015 02:52:00 GMT", 6 | "windDirection": 30, 7 | "windDirectionCompass": "NNE", 8 | "windSpeed": 6.7, 9 | "pressure": 1012.9, 10 | "airTemp": 22.3, 11 | "waterTemp": 15.1, 12 | "dominantPeriodWaveDirection": 278, 13 | "dominantPeriodWaveDirectionCompass": "W" 14 | }, { 15 | "waveHeight": 1.0, 16 | "wavePeriod": 17, 17 | "averageWavePeriod": 4.6, 18 | "date": "Wed, 29 Apr 2015 01:52:00 GMT", 19 | "windDirection": 30, 20 | "windDirectionCompass": "NNE", 21 | "windSpeed": 6.7, 22 | "pressure": 1012.5, 23 | "airTemp": 22.1, 24 | "waterTemp": 15.2, 25 | "dominantPeriodWaveDirection": 199, 26 | "dominantPeriodWaveDirectionCompass": "SSW" 27 | }]; 28 | -------------------------------------------------------------------------------- /test/data/station/station-name-coords-2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NDBC/LTJF1 6 | 7 | 8 | 14 | 15 | 16 |

NDBC/LTJF1

Alternate Station
30.379S 81.446E

17 |

Weather Conditions

18 |

8:00 pm EDT 19-Oct-2015
19 | Air Temp: 69 °F (21 °C)
20 | Dew Point: 59 °F (15 °C)
21 | Visibility: 5.9 nmi (10.9 km)
22 |

23 |

Main Page
Feedback: webmaster.ndbc@noaa.gov

24 | 25 | 26 | -------------------------------------------------------------------------------- /test/test-buoy-latest-obs.js: -------------------------------------------------------------------------------- 1 | /*eslint-disable no-unused-expressions*/ 2 | import _ from "lodash"; 3 | import parseData from "../src/parse-latest-observation-data"; 4 | import {PARSE_ERROR} from "../src/parse-latest-observation-data"; 5 | import {expect} from "chai"; 6 | import {DATA} from "./data/buoy-latest-obs-data"; 7 | import expected from "./data/expected-latest-obs-data"; 8 | describe("parse latest observation data", function() { 9 | it("should exist", function() { 10 | expect(parseData).to.be.a("function"); 11 | }); 12 | it("should parse data", function() { 13 | var result = parseData(DATA); 14 | expect(result).to.be.an("array") 15 | expect(_.isEmpty(result)).to.be.false; 16 | _.each(result, function(buoy) { 17 | var expectedBuoy = expected[buoy.stationID] 18 | expect(buoy.date.toUTCString()).to.equal(expectedBuoy.date) 19 | expect(_.omit(buoy, "date")).to.deep.equal(_.omit(expectedBuoy, "date")); 20 | }) 21 | expect(function() { 22 | parseData(12345) 23 | }).to.throw(PARSE_ERROR) 24 | }); 25 | }) 26 | -------------------------------------------------------------------------------- /test/data/station/station-name-coords.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NDBC/LTJF1 6 | 7 | 8 | 14 | 15 | 16 |

NDBC/LTJF1

8720228 - Little Jetties, St. Johns River, FL
30.379N 81.446W

17 |

Weather Conditions

18 |

8:00 pm EDT 19-Oct-2015
19 | Air Temp: 69 °F (21 °C)
20 | Dew Point: 59 °F (15 °C)
21 | Visibility: 5.9 nmi (10.9 km)
22 |

23 |

Main Page
Feedback: webmaster.ndbc@noaa.gov

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/parse-station-properties.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Parses station data from http://www.ndbc.noaa.gov/mobile/station.php?station= 3 | */ 4 | let nameMatch = /h1>

(.*)
NDBC\/(.*)<\/title/i 7 | export const PARSE_ERROR = "Couldn't parse station data" 8 | export default stationData => { 9 | let foundID = idMatch.exec(stationData) 10 | if (!foundID) { 11 | throw PARSE_ERROR + " no id" 12 | } 13 | let id = foundID[1], 14 | result = { 15 | id: id 16 | }, 17 | parse = nameMatch.exec(stationData), 18 | coords = coordsMatch.exec(stationData) 19 | if (!parse || parse.length < 2) { 20 | result.name = id; 21 | } else { 22 | result.name = parse[1]; 23 | } 24 | if (!coords || coords.length < 2) { 25 | throw PARSE_ERROR + " no coords" 26 | } else { 27 | let latlong = coords[0].split(" "), 28 | lat = latlong[0], 29 | long = latlong[1] 30 | result.longitude = long.indexOf("W") === -1 ? parseFloat(long) : -parseFloat(long) 31 | result.latitude = lat.indexOf("S") === -1 ? parseFloat(lat) : -parseFloat(lat) 32 | } 33 | return result 34 | } 35 | -------------------------------------------------------------------------------- /test/test-buoy-realtime-parsing.js: -------------------------------------------------------------------------------- 1 | import _ from "lodash"; 2 | import parseData from "../src/parse-realtime-buoy-data"; 3 | import {PARSE_ERROR} from "../src/parse-realtime-buoy-data"; 4 | import {expect} from "chai"; 5 | import {BUOY_DATA} from "./data/buoy-data"; 6 | import {DATA} from "./data/expected-data"; 7 | describe("parse buoy station data", function() { 8 | it("should exist", function() { 9 | expect(parseData).to.be.a("function"); 10 | }); 11 | it("should parse the buoy string into an array of buoy records", function() { 12 | let actual = parseData(BUOY_DATA); 13 | expect(actual).to.be.an("array") 14 | expect(actual.length).to.equal(2) 15 | _.each(actual, function(buoy, index) { 16 | let expected = DATA[index]; 17 | expect(buoy.date.toUTCString()).to.equal(expected.date) 18 | expect(_.omit(buoy, "date")).to.deep.equal(_.omit(expected, "date")); 19 | }) 20 | expect(function() { 21 | parseData(12345) 22 | }).to.throw(PARSE_ERROR) 23 | 24 | }); 25 | it("should get the specified number of records", function() { 26 | let actual = parseData(BUOY_DATA, 1); 27 | expect(actual).to.be.an("array") 28 | expect(actual.length).to.equal(1) 29 | }); 30 | }) 31 | -------------------------------------------------------------------------------- /test/data/expected-latest-obs-data.json: -------------------------------------------------------------------------------- 1 | { 2 | "13001": { 3 | "stationID": "13001", 4 | "latitude": 11.52, 5 | "longitude": -22.98, 6 | "windDirection": 30, 7 | "date": "Tue, 07 Apr 2015 15:15:00 GMT", 8 | "windDirectionCompass":"NNE", 9 | "windSpeed": 6.7, 10 | "pressure": 1012.9, 11 | "airTemp": 22.3, 12 | "waterTemp": 23.5 13 | }, 14 | "13002": { 15 | "stationID": "13002", 16 | "latitude": 20.45, 17 | "longitude": -23.09, 18 | "windDirection": 10, 19 | "date": "Tue, 07 Apr 2015 16:30:00 GMT", 20 | "dominantPeriodWaveDirection": 280, 21 | "dominantPeriodWaveDirectionCompass":"W", 22 | "windDirectionCompass":"N", 23 | "windSpeed": 6.2, 24 | "airTemp": 19.8 25 | }, 26 | "13008": { 27 | "stationID": "13008", 28 | "latitude": 14.99, 29 | "longitude": -38.01, 30 | "windDirection": 70, 31 | "date": "Tue, 07 Apr 2015 17:45:00 GMT", 32 | "windDirectionCompass":"ENE", 33 | "windSpeed": 8.2, 34 | "pressure": 1016.9, 35 | "airTemp": 22.3, 36 | "waterTemp": 24.4 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/util/degrees-to-direction.js: -------------------------------------------------------------------------------- 1 | export default degrees => { 2 | if (degrees >= 0 && degrees <= 11.25) { 3 | return "N"; 4 | } 5 | if (degrees > 348.75 && degrees <= 360) { 6 | return "N"; 7 | } 8 | if (degrees > 11.25 && degrees <= 33.75) { 9 | return "NNE"; 10 | } 11 | if (degrees > 33.75 && degrees <= 56.25) { 12 | return "NE"; 13 | } 14 | if (degrees > 56.25 && degrees <= 78.75) { 15 | return "ENE"; 16 | } 17 | if (degrees > 78.75 && degrees <= 101.25) { 18 | return "E"; 19 | } 20 | if (degrees > 101.25 && degrees <= 123.75) { 21 | return "ESE"; 22 | } 23 | if (degrees > 123.75 && degrees <= 146.25) { 24 | return "SE"; 25 | } 26 | if (degrees > 146.25 && degrees <= 168.75) { 27 | return "SSE"; 28 | } 29 | if (degrees > 168.75 && degrees <= 191.25) { 30 | return "S"; 31 | } 32 | if (degrees > 191.25 && degrees <= 213.75) { 33 | return "SSW"; 34 | } 35 | if (degrees > 213.75 && degrees <= 236.25) { 36 | return "SW"; 37 | } 38 | if (degrees > 236.25 && degrees <= 258.75) { 39 | return "WSW"; 40 | } 41 | if (degrees > 258.75 && degrees <= 281.25) { 42 | return "W"; 43 | } 44 | if (degrees > 281.25 && degrees <= 303.75) { 45 | return "WNW"; 46 | } 47 | if (degrees > 303.75 && degrees <= 326.25) { 48 | return "NW"; 49 | } 50 | return "NNW"; 51 | } 52 | -------------------------------------------------------------------------------- /src/parse-buoy-properties.js: -------------------------------------------------------------------------------- 1 | import degreesToDirection from "./util/degrees-to-direction" 2 | import propMap from "./prop-map.js" 3 | export default (buoy, map, val, index) => { 4 | if (val === "MM") { 5 | return; 6 | } 7 | let propName = map[index]; 8 | if (propName === "STN") { 9 | buoy.stationID = val 10 | return 11 | } 12 | if (propMap[propName]) { 13 | propName = propMap[propName]; 14 | } else { 15 | return; 16 | } 17 | // all values are numbers. 18 | val = parseFloat(val); 19 | switch (propName) { 20 | case "year": 21 | buoy.date.setUTCFullYear(val); 22 | break; 23 | case "month": 24 | buoy.date.setUTCMonth(val - 1); 25 | break; 26 | case "day": 27 | buoy.date.setUTCDate(val); 28 | break; 29 | case "hour": 30 | buoy.date.setUTCHours(val); 31 | break; 32 | case "minute": 33 | buoy.date.setUTCMinutes(val); 34 | break; 35 | case "dominantPeriodWaveDirection": 36 | buoy[propName] = val; 37 | buoy.dominantPeriodWaveDirectionCompass = degreesToDirection(val); 38 | break; 39 | case "windDirection": 40 | buoy[propName] = val; 41 | buoy.windDirectionCompass = degreesToDirection(val); 42 | break; 43 | case "waveHeight": 44 | buoy[propName] = val; 45 | break; 46 | case "longitude": 47 | case "latitude": 48 | buoy[propName] = parseFloat(val); 49 | break; 50 | default: 51 | buoy[propName] = val; 52 | break; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/parse-buoy-records.js: -------------------------------------------------------------------------------- 1 | import R from "ramda"; 2 | import util from "./util/func-util" 3 | import parseBuoyProperties from "./parse-buoy-properties" 4 | let arrayFromLine = line => line.replace(/\s{2,}/g, ' ').replace("#", "").split(" "), 5 | // get the prop names from first element in the array 6 | headAsArray = R.pipe(R.head, arrayFromLine), 7 | // pop off the first two lines of text, they're descriptions, not buoy data 8 | cleanBuoyData = R.pipe(R.drop(2), util.compact), 9 | // Convert the raw data to a buoy object 10 | createBuoyRecord = R.curry((propertyNames, values) => { 11 | var buoy = { 12 | // this date will be manipulated in parseBuoyProperties 13 | date: new Date() 14 | }; 15 | // build the object by iterating through each row value 16 | values.forEach(R.partial(parseBuoyProperties, [buoy, propertyNames])); 17 | // seconds and milliseconds don't come from noaa data, 18 | // so clear them 19 | buoy.date.setSeconds(0) 20 | buoy.date.setMilliseconds(0) 21 | return buoy; 22 | }), 23 | // Run the functions defined above 24 | parseBuoyRecords = records => { 25 | // The first line contains the property names 26 | let propertyNames = headAsArray(records), 27 | // Run this on each record 28 | parseRecord = R.compose(createBuoyRecord(propertyNames), arrayFromLine), 29 | // The records we want to map 30 | recordsList = cleanBuoyData(records) 31 | return recordsList.map(parseRecord); 32 | } 33 | 34 | export default R.pipe(R.split("\n"), parseBuoyRecords) 35 | -------------------------------------------------------------------------------- /test/data/tide.js: -------------------------------------------------------------------------------- 1 | export const TIDE_DATA = `Date Time, Prediction 2 | 2015-04-22 00:00,0.512 3 | 2015-04-22 00:06,0.505 4 | 2015-04-22 00:12,0.498 5 | 2015-04-22 00:18,0.493 6 | 2015-04-22 00:24,0.489 7 | 2015-04-22 00:30,0.486 8 | 2015-04-22 00:36,0.485 9 | 2015-04-22 00:42,0.485 10 | 2015-04-22 00:48,0.487 11 | 2015-04-22 00:54,0.490 12 | 2015-04-22 01:00,0.494 13 | 2015-04-22 01:06,0.500 14 | 2015-04-22 01:12,0.507 15 | 2015-04-22 01:18,0.515 16 | 2015-04-22 01:24,0.525 17 | 2015-04-22 01:30,0.537 18 | 2015-04-22 01:36,0.549 19 | 2015-BAD_DATE 01:36,0.549 20 | 2015-04-22 01:42,0.563 21 | 2015-04-22 01:48,0.578 22 | 2015-04-22 01:54,0.595 23 | 2015-04-22 02:00,0.613 24 | 2015-04-22 02:06,0.632 25 | 2015-04-22 02:12,0.652 26 | 2015-04-22 02:18,0.673 27 | 2015-04-22 02:24,0.695 28 | 2015-04-22 02:30,0.719 29 | 2015-04-22 02:36,0.743 30 | 2015-04-22 02:42,0.768 31 | 2015-04-22 02:48,0.794 32 | 2015-04-22 02:54,0.821 33 | 2015-04-22 03:00,0.849 34 | 2015-04-22 03:06,0.877 35 | 2015-04-22 03:12,0.906 36 | 2015-04-22 03:18,0.935 37 | 2015-04-22 03:24,0.965 38 | 2015-04-22 03:30,0.995 39 | 2015-04-22 03:36,1.025 40 | 2015-04-22 03:42,1.056 41 | 2015-04-22 03:48,1.086 42 | 2015-04-22 03:54,1.117 43 | 2015-04-22 04:00,1.148 44 | 2015-04-22 04:06,1.178 45 | 2015-04-22 04:12,1.209 46 | 2015-04-22 04:18,1.239 47 | 2015-04-22 04:24,1.269 48 | 2015-04-22 04:30,1.298 49 | 2015-04-22 04:36,1.327 50 | 2015-04-22 04:42,1.356 51 | 2015-04-22 04:48,1.383 52 | 2015-04-22 04:54,1.410 53 | 2015-04-22 05:00,1.436 54 | 2015-04-22 05:06,1.432 55 | `; 56 | -------------------------------------------------------------------------------- /test/test-station-properties.js: -------------------------------------------------------------------------------- 1 | /*eslint-disable no-unused-expressions*/ 2 | import _ from "lodash"; 3 | import parseData from "../src/parse-station-properties"; 4 | import {PARSE_ERROR} from "../src/parse-station-properties"; 5 | import {expect} from "chai"; 6 | import fs from "fs" 7 | describe("parse station name and coords from station html", function() { 8 | it("should exist", function() { 9 | expect(parseData).to.be.a("function"); 10 | }); 11 | it("should parse data", function() { 12 | let DATA = fs.readFileSync("./test/data/station/station-name-coords.html") 13 | var result = parseData(DATA); 14 | expect(result).to.be.an("object") 15 | expect(_.isEmpty(result)).to.be.false; 16 | expect(result.id).to.equal("LTJF1") 17 | expect(result.name).to.equal("8720228 - Little Jetties, St. Johns River, FL") 18 | expect(result.latitude).to.equal(30.379) 19 | expect(result.longitude).to.equal(-81.446) 20 | }); 21 | it("should parse alternate data", function() { 22 | let DATA = fs.readFileSync("./test/data/station/station-name-coords-2.html") 23 | var result = parseData(DATA); 24 | expect(result).to.be.an("object") 25 | expect(_.isEmpty(result)).to.be.false; 26 | expect(result.id).to.equal("LTJF1") 27 | expect(result.name).to.equal("Alternate Station") 28 | expect(result.latitude).to.equal(-30.379) 29 | expect(result.longitude).to.equal(81.446) 30 | }); 31 | it("should throw errors", function() { 32 | expect(function() { 33 | parseData(12345) 34 | }).to.throw(PARSE_ERROR + " no id") 35 | expect(function() { 36 | parseData("NDBC/Ravioli") 37 | }).to.throw(PARSE_ERROR + " no coords") 38 | }); 39 | }) 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://img.shields.io/travis/giannif/buoy-js.svg)](https://travis-ci.org/giannif/buoy-js) 2 | [![Coverage Status](https://coveralls.io/repos/giannif/buoy-js/badge.svg?branch=master&service=github)](https://coveralls.io/github/giannif/buoy-js?branch=master) 3 | 4 | # buoy-js 5 | 6 | Parse data from http://www.ndbc.noaa.gov/ and http://tidesandcurrents.noaa.gov 7 | 8 | This project is used to parse data in [Buoy Buddy ![Buoy Buddy](bb.png)](http://appstore.com/buoybuddy), an iOS app showing wave and tide data. 9 | 10 | ### Buoy Data 11 | 12 | Buoy data can be loaded from the latest observation url: 13 | http://www.ndbc.noaa.gov/data/latest_obs/latest_obs.txt 14 | 15 | And then passed to `Buoy.lastestObservation(rawData)` to get an object of stations and their current conditions. 16 | 17 | Or it can be loaded from: 18 | http://www.ndbc.noaa.gov/data/realtime2/{stationID}.txt 19 | 20 | And passed to `Buoy.realTime(rawData)` to get a single station an its history of conditions. 21 | 22 | ### Tide Data 23 | 24 | Tide data can be loaded by using: 25 | http://tidesandcurrents.noaa.gov/api/ 26 | 27 | And then passed to `Tide.parse(rawData)` 28 | 29 | This returns a tide object, that can be passed to `Tide.getCurrent(tideObject, forDate)` to return the current tide. 30 | 31 | To find the next high or low tide, use `Tide.getNextHighOrLow(tideObject, forDate)` 32 | 33 | For both methods, the second argument is Date object, and the default value is now, if left unspecified. 34 | 35 | For parsing published Tide Table data, use `Tide.parseTideTable(rawData)` 36 | 37 | Tide Tables can be found on pages like: 38 | http://tidesandcurrents.noaa.gov/noaatidepredictions/NOAATidesFacade.jsp?Stationid=8516881 39 | -------------------------------------------------------------------------------- /test/test-util.js: -------------------------------------------------------------------------------- 1 | import degreesToDirection from "../src/util/degrees-to-direction"; 2 | import noaaDate from "../src/util/get-noaa-date"; 3 | import {expect} from "chai"; 4 | 5 | describe("degrees-to-direction", function() { 6 | it("should exist", function() { 7 | expect(degreesToDirection).to.be.a("function"); 8 | }); 9 | it("should convert a number to direction value", function() { 10 | expect(degreesToDirection(0)).to.equal("N"); 11 | expect(degreesToDirection(360)).to.equal("N"); 12 | expect(degreesToDirection(12)).to.equal("NNE"); 13 | expect(degreesToDirection(34)).to.equal("NE"); 14 | expect(degreesToDirection(60)).to.equal("ENE"); 15 | expect(degreesToDirection(90)).to.equal("E"); 16 | expect(degreesToDirection(120)).to.equal("ESE"); 17 | expect(degreesToDirection(130)).to.equal("SE"); 18 | expect(degreesToDirection(160)).to.equal("SSE"); 19 | expect(degreesToDirection(180)).to.equal("S"); 20 | expect(degreesToDirection(200)).to.equal("SSW"); 21 | expect(degreesToDirection(215)).to.equal("SW"); 22 | expect(degreesToDirection(240)).to.equal("WSW"); 23 | expect(degreesToDirection(260)).to.equal("W"); 24 | expect(degreesToDirection(290)).to.equal("WNW"); 25 | expect(degreesToDirection(310)).to.equal("NW"); 26 | expect(degreesToDirection(348.75)).to.equal("NNW"); 27 | }); 28 | }) 29 | 30 | describe("noaa date", function() { 31 | it("should exist", function() { 32 | expect(noaaDate).to.be.a("function"); 33 | }); 34 | it("should return the correct value", function() { 35 | expect(noaaDate().length).to.equal(8, "dates are of lenght 8, e.g. 20150413"); 36 | let date = new Date(); 37 | date.setUTCFullYear(1981); 38 | date.setUTCDate(2); 39 | date.setUTCMonth(4); 40 | expect(noaaDate(date)).to.equal("19810502"); 41 | date = new Date(); 42 | date.setUTCFullYear(1981); 43 | date.setUTCDate(12); 44 | date.setUTCMonth(11); 45 | expect(noaaDate(date)).to.equal("19811212"); 46 | }); 47 | }); 48 | 49 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "buoy-js", 3 | "version": "1.2.1", 4 | "description": "Parse data from noaa.gov services. Buoy data and tide data.", 5 | "keywords": "buoy noaa tides currents ndbc", 6 | "license": "MIT", 7 | "author": { 8 | "name": "Gianni Ferullo", 9 | "email": "giannif@gmail.com", 10 | "url": "http://gianniferullo.com/" 11 | }, 12 | "scripts": { 13 | "test": "mocha --compilers js:babel-core/register test/*.js -b -G", 14 | "coverage": "./node_modules/.bin/babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha", 15 | "coveralls": "./node_modules/.bin/babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", 16 | "lint": "eslint 'test/**/*.js' 'src/**/*.js'" 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "https://github.com/giannif/buoy-js.git" 21 | }, 22 | "main": "dist/bundle.js", 23 | "dependencies": { 24 | "ramda": "^0.18.0" 25 | }, 26 | "devDependencies": { 27 | "babel": "^6.1.18", 28 | "babel-cli": "^6.3.13", 29 | "babel-core": "~6.3.13", 30 | "babel-eslint": "^4.1.6", 31 | "babel-preset-es2015": "^6.1.18", 32 | "babelify": "^7.2.0", 33 | "browser-sync": "^2.9.12", 34 | "browserify": "^12.0.1", 35 | "chai": "^3.4.1", 36 | "coveralls": "^2.11.4", 37 | "eslint": "^1.10.3", 38 | "eslint-friendly-formatter": "^1.2.2", 39 | "event-stream": "^3.3.2", 40 | "geolib": "^2.0.18", 41 | "growl": "^1.8.1", 42 | "gulp": "^3.9.0", 43 | "gulp-buffer": "0.0.2", 44 | "gulp-load-plugins": "^1.1.0", 45 | "gulp-rename": "^1.2.2", 46 | "gulp-replace": "^0.5.4", 47 | "gulp-replace-task": "^0.11.0", 48 | "gulp-uglify": "^1.4.2", 49 | "gulp-util": "^3.0.7", 50 | "isparta": "^4.0.0", 51 | "mocha": "^2.3.3", 52 | "lodash": "^3.10.1", 53 | "request": "^2.65.0", 54 | "rimraf": "^2.4.3", 55 | "vinyl-source-stream": "^1.1.0", 56 | "watchify": "^3.6.0", 57 | "yargs": "^3.30.0" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | /*eslint-disable*/ 2 | var gulp = require("gulp"), 3 | $ = require('gulp-load-plugins')(), 4 | browserify = require("browserify"), 5 | watchify = require("watchify"), 6 | babelify = require("babelify"), 7 | rimraf = require("rimraf"), 8 | source = require("vinyl-source-stream"), 9 | browserSync = require("browser-sync"), 10 | _ = require("lodash"), 11 | es = require("event-stream"), 12 | bundler, 13 | reload = browserSync.reload, 14 | config = { 15 | entryFile: "./src/main.js", 16 | outputDir: "./dist/", 17 | outputFile: "buoy.js" 18 | }; 19 | gulp.task("clean", function() { 20 | rimraf.sync(config.outputDir); 21 | }); 22 | gulp.task("build", ["clean"], function() { 23 | return bundle(); 24 | }); 25 | gulp.task("default", ["build"], function() { 26 | process.exit(0); 27 | }); 28 | gulp.task("release", ["build", "compress"], function() { 29 | process.exit(0); 30 | }); 31 | gulp.task('compress', ["build"], function() { 32 | return gulp.src(config.outputDir + config.outputFile) 33 | .pipe($.uglify()) 34 | .pipe($.rename({ 35 | extname: '.min.js' 36 | })) 37 | .pipe(gulp.dest("dist")); 38 | }); 39 | gulp.task("watch", ["build"], function() { 40 | browserSync({ 41 | server: { 42 | baseDir: config.outputDir 43 | } 44 | }); 45 | getBundler().on("update", function() { 46 | gulp.start("build"); 47 | }); 48 | }); 49 | gulp.task("serve", function() { 50 | browserSync({ 51 | server: { 52 | baseDir: config.outputDir 53 | } 54 | }); 55 | }); 56 | 57 | function getBundler() { 58 | if (!bundler) { 59 | bundler = watchify(browserify(config.entryFile, _.extend({ 60 | debug: true, 61 | standalone: "BuoyData" 62 | }, watchify.args))); 63 | } 64 | return bundler; 65 | } 66 | 67 | function bundle() { 68 | return getBundler() 69 | .transform(babelify) 70 | .bundle() 71 | .on('error', $.util.log) 72 | .pipe(source(config.outputFile)) 73 | .pipe($.buffer()) 74 | .pipe($.replace(/@@compiled/ig, (new Date()).toString())) 75 | .pipe(gulp.dest(config.outputDir)); 76 | // .pipe(reload({ 77 | // stream: true 78 | // })); 79 | } 80 | -------------------------------------------------------------------------------- /src/prop-map.js: -------------------------------------------------------------------------------- 1 | export default { 2 | STN: "stationID", 3 | /** 4 | * Wind direction (the direction the wind is coming from in degrees clockwise from true N) during the same period used for WSPD. See Wind Averaging Methods 5 | */ 6 | WDIR: "windDirection", 7 | /** 8 | * Wind speed (m/s) averaged over an eight-minute period for buoys and a two-minute period for land stations. Reported Hourly. See Wind Averaging Methods. 9 | */ 10 | WSPD: "windSpeed", 11 | /** 12 | * Peak 5 or 8 second gust speed (m/s) measured during the eight-minute or two-minute period. The 5 or 8 second period can be determined by payload, See the Sensor Reporting, Sampling, and Accuracy section. 13 | */ 14 | GST: "gustSpeed", 15 | /** 16 | * Significant wave height (meters) is calculated as the average of the highest one-third of all of the wave heights during the 20-minute sampling period. See the Wave Measurements section. 17 | */ 18 | WVHT: "waveHeight", 19 | /** 20 | * Dominant wave period (seconds) is the period with the maximum wave energy. See the Wave Measurements section. 21 | */ 22 | DPD: "wavePeriod", 23 | /** 24 | * Average wave period (seconds) of all waves during the 20-minute period. See the Wave Measurements section. 25 | */ 26 | APD: "averageWavePeriod", 27 | /** 28 | * The direction from which the waves at the dominant period (DPD) are coming. The units are degrees from true North, increasing clockwise, 29 | * with North as 0 (zero) degrees and East as 90 degrees. See the Wave Measurements section. 30 | */ 31 | MWD: "dominantPeriodWaveDirection", 32 | /** 33 | * Sea level pressure (hPa). For C-MAN sites and Great Lakes buoys, 34 | * the recorded pressure is reduced to sea level using the method described in 35 | * NWS Technical Procedures Bulletin 291 (11/14/80). ( labeled BAR in Historical files) 36 | */ 37 | PRES: "pressure", 38 | /** 39 | * Air temperature (Celsius). For sensor heights on buoys, see Hull Descriptions. 40 | * For sensor heights at C-MAN stations, see C-MAN Sensor Locations 41 | */ 42 | ATMP: "airTemp", 43 | /** 44 | * Sea surface temperature (Celsius). For sensor depth, see Hull Description. 45 | */ 46 | WTMP: "waterTemp", 47 | /** 48 | * Dewpoint temperature taken at the same height as the air temperature measurement. 49 | */ 50 | DEWP: "dewpointTemp", 51 | /** 52 | * Pressure Tendency is the direction (plus or minus) and the amount of pressure change (hPa) 53 | * for a three hour period ending at the time of observation. (not in Historical files) 54 | */ 55 | PTDY: "pressureTendency", 56 | TIDE: "tide", 57 | LAT: "latitude", 58 | LON: "longitude", 59 | YYYY: "year", 60 | YY: "year", 61 | MM: "month", 62 | DD: "day", 63 | hh: "hour", 64 | mm: "minute" 65 | } 66 | -------------------------------------------------------------------------------- /test/data/buoy-data-all.js: -------------------------------------------------------------------------------- 1 | export const BUOY_DATA = `#YY MM DD hh mm WDIR WSPD GST WVHT DPD APD MWD PRES ATMP WTMP DEWP VIS PTDY TIDE 2 | #yr mo dy hr mn degT m/s m/s m sec sec degT hPa degC degC degC nmi hPa ft 3 | 2015 04 29 02 52 MM MM MM 1.1 4 4.5 278 MM MM 15.1 MM MM MM MM 4 | 2015 04 29 02 22 MM MM MM 1.1 8 4.6 269 MM MM 15.3 MM MM MM MM 5 | 2015 04 29 01 52 MM MM MM 1.0 17 4.6 199 MM MM 15.2 MM MM MM MM 6 | 2015 04 29 01 22 MM MM MM 1.0 15 4.6 203 MM MM 15.3 MM MM MM MM 7 | 2015 04 29 00 52 MM MM MM 1.0 17 4.6 203 MM MM 15.4 MM MM MM MM 8 | 2015 04 28 23 52 MM MM MM 0.9 15 4.5 206 MM MM 15.3 MM MM MM MM 9 | 2015 04 28 23 22 MM MM MM 0.9 17 4.2 167 MM MM 15.3 MM MM MM MM 10 | 2015 04 28 22 52 MM MM MM 0.9 15 4.5 185 MM MM 15.4 MM MM MM MM 11 | 2015 04 28 22 22 MM MM MM 0.8 15 4.8 178 MM MM 15.5 MM MM MM MM 12 | 2015 04 28 21 52 MM MM MM 0.8 15 4.8 210 MM MM 15.8 MM MM MM MM 13 | 2015 04 28 21 22 MM MM MM 0.8 17 5.2 181 MM MM 15.9 MM MM MM MM 14 | 2015 04 28 20 52 MM MM MM 0.8 17 5.7 181 MM MM 16.0 MM MM MM MM 15 | 2015 04 28 20 22 MM MM MM 0.8 6 5.6 265 MM MM 16.2 MM MM MM MM 16 | 2015 04 28 19 52 MM MM MM 0.8 6 5.7 264 MM MM 16.4 MM MM MM MM 17 | 2015 04 28 19 22 MM MM MM 0.8 6 5.7 265 MM MM 16.4 MM MM MM MM 18 | 2015 04 28 18 52 MM MM MM 0.8 13 5.7 206 MM MM 16.6 MM MM MM MM 19 | 2015 04 28 18 22 MM MM MM 0.8 7 5.9 267 MM MM 16.7 MM MM MM MM 20 | 2015 04 28 17 52 MM MM MM 0.8 17 5.6 184 MM MM 16.4 MM MM MM MM 21 | 2015 04 28 17 22 MM MM MM 0.8 13 5.6 215 MM MM 16.1 MM MM MM MM 22 | 2015 04 28 16 52 MM MM MM 0.8 17 5.6 195 MM MM 15.9 MM MM MM MM 23 | 2015 04 28 16 22 MM MM MM 0.8 7 5.5 268 MM MM 15.8 MM MM MM MM 24 | 2015 04 28 15 52 MM MM MM 0.7 5 5.5 267 MM MM 15.6 MM MM MM MM 25 | 2015 04 28 15 22 MM MM MM 0.7 13 5.4 212 MM MM 15.4 MM MM MM MM 26 | 2015 04 28 14 52 MM MM MM 0.7 13 5.6 219 MM MM 15.3 MM MM MM MM 27 | 2015 04 28 14 22 MM MM MM 0.7 17 5.7 226 MM MM 15.1 MM MM MM MM 28 | 2015 04 28 13 52 MM MM MM 0.6 17 5.5 206 MM MM 15.1 MM MM MM MM 29 | 2015 04 28 13 22 MM MM MM 0.6 14 5.4 233 MM MM 15.0 MM MM MM MM 30 | 2015 04 28 12 52 MM MM MM 0.6 13 5.5 220 MM MM 14.9 MM MM MM MM 31 | 2015 04 28 12 22 MM MM MM 0.6 14 5.4 210 MM MM 14.9 MM MM MM MM 32 | 2015 04 28 11 52 MM MM MM 0.6 13 5.4 213 MM MM 14.9 MM MM MM MM 33 | 2015 04 28 11 22 MM MM MM 0.6 17 5.6 219 MM MM 14.8 MM MM MM MM 34 | 2015 04 28 10 52 MM MM MM 0.6 17 5.5 205 MM MM 14.8 MM MM MM MM 35 | 2015 04 28 10 22 MM MM MM 0.6 14 5.3 206 MM MM 14.8 MM MM MM MM 36 | 2015 04 28 09 52 MM MM MM 0.7 17 5.3 205 MM MM 14.8 MM MM MM MM 37 | 2015 04 28 09 22 MM MM MM 0.7 14 5.4 217 MM MM 14.8 MM MM MM MM 38 | 2015 04 28 08 52 MM MM MM 0.7 14 5.5 220 MM MM 14.8 MM MM MM MM 39 | 2015 04 28 08 22 MM MM MM 0.7 13 5.2 223 MM MM 14.9 MM MM MM MM`; 40 | -------------------------------------------------------------------------------- /src/tide.js: -------------------------------------------------------------------------------- 1 | import R from "ramda"; 2 | import util from "./util/func-util" 3 | import getNOAADate from "./util/get-noaa-date"; 4 | let createTideObj = fields => { 5 | // fields: Date, Day, Time, Ft, cm, High/Low 6 | if (fields.length === 6) { 7 | let date = new Date(fields[0] + " " + fields[2] + " GMT+0000") 8 | if (util.isDate(date)) { 9 | return { 10 | date: date, 11 | tideSize: parseInt(fields[4]) / 100, 12 | isHighTide: fields[5].indexOf("H") !== -1 13 | } 14 | } 15 | } 16 | }, 17 | parseTideTableLineToObject = R.ifElse( 18 | R.is(String), 19 | R.pipe( 20 | // create array 21 | R.split("\t"), 22 | // remove empties 23 | util.compact, 24 | // create tide object 25 | createTideObj), 26 | R.identity), 27 | parseTideTable = R.pipe( 28 | // create array 29 | R.split("\n"), 30 | // map to tide objects 31 | R.map(parseTideTableLineToObject), 32 | // clean up 33 | util.compact), 34 | parseTideData = R.pipe( 35 | // split newlines 36 | R.split("\n"), 37 | // ignore the first 38 | R.tail), 39 | parseTideItem = R.pipe( 40 | R.split(","), 41 | tide => ({ 42 | // the date is UTC, append GMT+0000 to indicate that 43 | date: new Date(tide[0].replace(/-/g, "/") + " GMT+0000"), 44 | tideSize: parseFloat(tide[1]) 45 | })) 46 | 47 | export default { 48 | /** 49 | * return an array of {date, tideSize, isHighTide} 50 | */ 51 | getURL: (tideStationID, numberOfHours = 48) => { 52 | var range = numberOfHours; 53 | return `http://tidesandcurrents.noaa.gov/api/datagetter?begin_date=${getNOAADate()}&range=${range}&station=${tideStationID}&product=predictions&datum=MLLW&units=metric&time_zone=gmt&application=ports_screen&format=csv`; 54 | }, 55 | parseTideTableLine: parseTideTableLineToObject, 56 | /** 57 | * return an array of {date, tideSize, isHighTide} 58 | */ 59 | parseTideTable: R.ifElse( 60 | R.is(String), 61 | parseTideTable, 62 | R.identity 63 | ), 64 | /** 65 | * return an array of {date, tideSize} 66 | */ 67 | parse: R.pipe( 68 | parseTideData, 69 | R.map(parseTideItem) 70 | ), 71 | /** 72 | * look through an array of {date, tideSize} 73 | */ 74 | getCurrent: (data, forDate) => { 75 | let matchDate = forDate || new Date(), 76 | lastTide = {}; 77 | return R.find(tide => { 78 | let date = tide.date 79 | if (util.isDate(date)) { 80 | if (date.getTime() > matchDate.getTime()) { 81 | tide.isIncreasing = tide.tideSize > lastTide.tideSize; 82 | return true; 83 | } 84 | if (tide.tideSize !== lastTide.tideSize) { 85 | lastTide = tide; 86 | } 87 | } 88 | }, data); 89 | }, 90 | /** 91 | * look through an array of {date, tideSize} 92 | */ 93 | getNextHighOrLow: (data, forDate) => { 94 | let matchDate = forDate || new Date(), 95 | foundCurrent, 96 | isIncreasing, 97 | result, 98 | lastTide = {}; 99 | data.some(tide => { 100 | var itemDate = new Date(tide.date); 101 | if (!util.isDate(itemDate)) { 102 | return false; 103 | } 104 | if (foundCurrent) { 105 | // the tide is increasing 106 | // the current item is lower than the last 107 | // the last item was the high tide 108 | if (isIncreasing && tide.tideSize < lastTide.tideSize) { 109 | result = lastTide; 110 | } else if (!isIncreasing && tide.tideSize > lastTide.tideSize) { 111 | // tide is decreasing 112 | // the current tide is higher than the last 113 | // the last item was low tide 114 | result = lastTide; 115 | } 116 | if (result) { 117 | lastTide.isHighTide = isIncreasing; 118 | return true; 119 | } 120 | } 121 | if (!foundCurrent && itemDate.getTime() > matchDate.getTime()) { 122 | // we found the current tide, is it increasing? 123 | isIncreasing = tide.tideSize > lastTide.tideSize; 124 | foundCurrent = true; 125 | } 126 | if (tide.tideSize !== lastTide.tideSize) { 127 | lastTide = tide; 128 | } 129 | }); 130 | return result; 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /test/test-tide.js: -------------------------------------------------------------------------------- 1 | import {expect} from "chai"; 2 | import {TIDE_DATA} from "./data/tide"; 3 | import Tide from "../src/tide"; 4 | import getNOAADate from "../src/util/get-noaa-date"; 5 | import fs from "fs" 6 | 7 | describe("Tide.getCurrent Tide.getNextHighOrLow", function() { 8 | it("should get the current tide", function() { 9 | let testDate = new Date("2015-04-22 04:06 GMT+0000"); 10 | let result = Tide.getCurrent(Tide.parse(TIDE_DATA), testDate); 11 | expect(result).to.be.an("object"); 12 | expect(result.tideSize).to.equal(1.209); 13 | expect(result.isIncreasing).to.be.true; }); 14 | it("should get the next low tide", function() { 15 | let testDate = new Date("2015-04-22 00:00 GMT+0000"); 16 | let result = Tide.getNextHighOrLow(Tide.parse(TIDE_DATA), testDate); 17 | let current = Tide.getCurrent(Tide.parse(TIDE_DATA), testDate); 18 | expect(result).to.be.an("object"); 19 | expect(result.tideSize).to.equal(0.485); 20 | expect(current.isIncreasing).to.be.false; 21 | expect(result.isHighTide).to.be.false; 22 | }); 23 | it("should get the next high tide", function() { 24 | let testDate = new Date("2015-04-22 01:36 GMT+0000"); 25 | let current = Tide.getCurrent(Tide.parse(TIDE_DATA), testDate); 26 | let result = Tide.getNextHighOrLow(Tide.parse(TIDE_DATA), testDate); 27 | expect(result).to.be.an("object"); 28 | expect(result.tideSize).to.equal(1.436); 29 | expect(result.date.toUTCString()).to.equal("Wed, 22 Apr 2015 05:00:00 GMT"); 30 | expect(current.isIncreasing).to.be.true; 31 | expect(result.isHighTide).to.be.true; 32 | }); 33 | it("shouldn't crash with no date", function() { 34 | Tide.getCurrent(Tide.parse(TIDE_DATA)) 35 | Tide.getNextHighOrLow(Tide.parse(TIDE_DATA)); 36 | }) 37 | it("should return undefined if the tide data doesn't have a high/low", function() { 38 | let testDate = new Date("2015-04-22 05:00 GMT+0000"); 39 | let result = Tide.getNextHighOrLow(Tide.parse(TIDE_DATA), testDate); 40 | expect(result).to.be.an("undefined"); 41 | }); 42 | }); 43 | 44 | describe("Parse tide table", function() { 45 | let testFile = fs.readFileSync("./test/data/tide-annual.txt", { 46 | encoding: "utf-8" 47 | }) 48 | it("test file loaded", function() { 49 | expect(testFile).to.be.a("string") 50 | }); 51 | it("has the correct exports", function() { 52 | expect(Tide.parseTideTable).to.be.a("function") 53 | expect(Tide.parseTideTableLine).to.be.a("function") 54 | }); 55 | it("parses high tide", function() { 56 | let result = Tide.parseTideTableLine("2015/02/07 Thu 04:16 AM 4.7 143 H") 57 | expect(result.date.toUTCString()).to.equal("Sat, 07 Feb 2015 04:16:00 GMT") 58 | expect(result.isHighTide).to.be.true 59 | expect(result.tideSize).to.equal(1.43) 60 | }); 61 | it("parses low tide", function() { 62 | let result = Tide.parseTideTableLine("2015/02/07 Thu 04:16 AM 4.7 143 L") 63 | expect(result.date.toUTCString()).to.equal("Sat, 07 Feb 2015 04:16:00 GMT") 64 | expect(result.isHighTide).to.be.false 65 | expect(result.tideSize).to.equal(1.43) 66 | }); 67 | it("parses all", function() { 68 | let result = Tide.parseTideTable(testFile) 69 | expect(result).to.be.an("array") 70 | expect(result.length).to.equal(1411) 71 | result.forEach(function(line) { 72 | expect(line.date).to.be.a("date") 73 | expect(line.isHighTide).to.be.a("boolean") 74 | expect(line.tideSize).to.be.a("number") 75 | }) 76 | }); 77 | it("returns nothing with bad data", function() { 78 | let result = Tide.parseTideTableLine("Product Type: Annual Tide Prediction ") 79 | expect(result).to.be.undefined 80 | }); 81 | it("returns nothing with a bad date", function() { 82 | let result = Tide.parseTideTableLine("BAD/BAD/BAD Thu 04:16 AM 4.7 143 L") 83 | expect(result).to.be.undefined 84 | }); 85 | it("returns nothing with undefined data", function() { 86 | let result = Tide.parseTideTableLine(undefined) 87 | expect(result).to.be.undefined 88 | }); 89 | }) 90 | 91 | describe("Tide.getURL", function() { 92 | it("should get the correctly formatted url", function() { 93 | expect(Tide.getURL("12345")).to.equal(`http://tidesandcurrents.noaa.gov/api/datagetter?begin_date=${getNOAADate()}&range=48&station=12345&product=predictions&datum=MLLW&units=metric&time_zone=gmt&application=ports_screen&format=csv`) 94 | expect(Tide.getURL("12345", 100)).to.equal(`http://tidesandcurrents.noaa.gov/api/datagetter?begin_date=${getNOAADate()}&range=100&station=12345&product=predictions&datum=MLLW&units=metric&time_zone=gmt&application=ports_screen&format=csv`) 95 | }); 96 | }) 97 | 98 | -------------------------------------------------------------------------------- /dist/buoy.min.js: -------------------------------------------------------------------------------- 1 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.BuoyData=t()}}(function(){var t;return function n(t,r,e){function u(o,a){if(!r[o]){if(!t[o]){var c="function"==typeof require&&require;if(!a&&c)return c(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var s=r[o]={exports:{}};t[o][0].call(s.exports,function(n){var r=t[o][1][n];return u(r?r:n)},s,s.exports,n,t,r,e)}return r[o].exports}for(var i="function"==typeof require&&require,o=0;or;)i[i.length]=t[r],r+=1;for(r=0;u>r;)i[i.length]=n[r],r+=1;return i},f=function(t,n,r){for(var e=0,u=r.length;u>e;){if(t(n,r[e]))return!0;e+=1}return!1},s=function(t){return function n(r){return 0===arguments.length?n:null!=r&&r["@@functional/placeholder"]===!0?n:t.apply(this,arguments)}},l=function(t){return function n(r,e){var u=arguments.length;return 0===u?n:1===u&&null!=r&&r["@@functional/placeholder"]===!0?n:1===u?s(function(n){return t(r,n)}):2===u&&null!=r&&r["@@functional/placeholder"]===!0&&null!=e&&e["@@functional/placeholder"]===!0?n:2===u&&null!=r&&r["@@functional/placeholder"]===!0?s(function(n){return t(n,e)}):2===u&&null!=e&&e["@@functional/placeholder"]===!0?s(function(n){return t(r,n)}):t(r,e)}},p=function(t){return function n(r,e,u){var i=arguments.length;return 0===i?n:1===i&&null!=r&&r["@@functional/placeholder"]===!0?n:1===i?l(function(n,e){return t(r,n,e)}):2===i&&null!=r&&r["@@functional/placeholder"]===!0&&null!=e&&e["@@functional/placeholder"]===!0?n:2===i&&null!=r&&r["@@functional/placeholder"]===!0?l(function(n,r){return t(n,e,r)}):2===i&&null!=e&&e["@@functional/placeholder"]===!0?l(function(n,e){return t(r,n,e)}):2===i?s(function(n){return t(r,e,n)}):3===i&&null!=r&&r["@@functional/placeholder"]===!0&&null!=e&&e["@@functional/placeholder"]===!0&&null!=u&&u["@@functional/placeholder"]===!0?n:3===i&&null!=r&&r["@@functional/placeholder"]===!0&&null!=e&&e["@@functional/placeholder"]===!0?l(function(n,r){return t(n,r,u)}):3===i&&null!=r&&r["@@functional/placeholder"]===!0&&null!=u&&u["@@functional/placeholder"]===!0?l(function(n,r){return t(n,e,r)}):3===i&&null!=e&&e["@@functional/placeholder"]===!0&&null!=u&&u["@@functional/placeholder"]===!0?l(function(n,e){return t(r,n,e)}):3===i&&null!=r&&r["@@functional/placeholder"]===!0?s(function(n){return t(n,e,u)}):3===i&&null!=e&&e["@@functional/placeholder"]===!0?s(function(n){return t(r,n,u)}):3===i&&null!=u&&u["@@functional/placeholder"]===!0?s(function(n){return t(r,e,n)}):t(r,e,u)}},d=function wu(t,n,r){return function(){for(var e=[],i=0,o=t,a=0;a=arguments.length)?c=n[a]:(c=arguments[i],i+=1),e[a]=c,(null==c||c["@@functional/placeholder"]!==!0)&&(o-=1),a+=1}return 0>=o?r.apply(this,e):u(o,wu(t,e,r))}},h=function(t,n){for(var r=0,e=n.length,u=[];e>r;)t(n[r])&&(u[u.length]=n[r]),r+=1;return u},g=function(t){return{"@@transducer/value":t,"@@transducer/reduced":!0}},y=function(t){return function(n){return h(function(t){return"function"==typeof n[t]},t(n))}},m=function(t,n){return Object.prototype.hasOwnProperty.call(n,t)},v=function(t){return t},b=function(){var t=Object.prototype.toString;return"[object Arguments]"===t.call(arguments)?function(n){return"[object Arguments]"===t.call(n)}:function(t){return m("callee",t)}}(),w=Array.isArray||function(t){return null!=t&&t.length>=0&&"[object Array]"===Object.prototype.toString.call(t)},x=Number.isInteger||function(t){return t<<0===t},S=function(t){return"[object Number]"===Object.prototype.toString.call(t)},j=function(t){return"[object Object]"===Object.prototype.toString.call(t)},O=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},E=function(t){return"[object String]"===Object.prototype.toString.call(t)},M=function(t){return"function"==typeof t["@@transducer/step"]},T=function(t,n){for(var r=0,e=n.length,u=Array(e);e>r;)u[r]=t(n[r]),r+=1;return u},P=function(t){return[t]},_=function(t,n){return function(){return n.call(this,t.apply(this,arguments))}},D=function(t,n){return function(){var r=this;return t.apply(r,arguments).then(function(t){return n.call(r,t)})}},A=function(t){var n=t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return'"'+n.replace(/"/g,'\\"')+'"'},N=function(t){return t&&t["@@transducer/reduced"]?t:{"@@transducer/value":t,"@@transducer/reduced":!0}},k=function xu(t,n,r){switch(arguments.length){case 1:return xu(t,0,t.length);case 2:return xu(t,n,t.length);default:for(var e=[],u=0,i=Math.max(0,Math.min(t.length,r)-n);i>u;)e[u]=t[n+u],u+=1;return e}},R=function(){var t=function(t){return(10>t?"0":"")+t};return"function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(n){return n.getUTCFullYear()+"-"+t(n.getUTCMonth()+1)+"-"+t(n.getUTCDate())+"T"+t(n.getUTCHours())+":"+t(n.getUTCMinutes())+":"+t(n.getUTCSeconds())+"."+(n.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}}(),W=function(){function t(t,n){this.xf=n,this.pred=t,this.lastValue=void 0,this.seenFirstValue=!1}return t.prototype["@@transducer/init"]=function(){return this.xf["@@transducer/init"]()},t.prototype["@@transducer/result"]=function(t){return this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){var r=!1;return this.seenFirstValue?this.pred(this.lastValue,n)&&(r=!0):this.seenFirstValue=!0,this.lastValue=n,r?t:this.xf["@@transducer/step"](t,n)},l(function(n,r){return new t(n,r)})}(),I={init:function(){return this.xf["@@transducer/init"]()},result:function(t){return this.xf["@@transducer/result"](t)}},C=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return this.f(n)?this.xf["@@transducer/step"](t,n):t},l(function(n,r){return new t(n,r)})}(),U=function(){function t(t,n){this.xf=n,this.f=t,this.found=!1}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.found||(t=this.xf["@@transducer/step"](t,void 0)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){return this.f(n)&&(this.found=!0,t=N(this.xf["@@transducer/step"](t,n))),t},l(function(n,r){return new t(n,r)})}(),q=function(){function t(t,n){this.xf=n,this.f=t,this.idx=-1,this.found=!1}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.found||(t=this.xf["@@transducer/step"](t,-1)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){return this.idx+=1,this.f(n)&&(this.found=!0,t=N(this.xf["@@transducer/step"](t,this.idx))),t},l(function(n,r){return new t(n,r)})}(),F=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](t,this.last))},t.prototype["@@transducer/step"]=function(t,n){return this.f(n)&&(this.last=n),t},l(function(n,r){return new t(n,r)})}(),L=function(){function t(t,n){this.xf=n,this.f=t,this.idx=-1,this.lastIdx=-1}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](t,this.lastIdx))},t.prototype["@@transducer/step"]=function(t,n){return this.idx+=1,this.f(n)&&(this.lastIdx=this.idx),t},l(function(n,r){return new t(n,r)})}(),z=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return this.xf["@@transducer/step"](t,this.f(n))},l(function(n,r){return new t(n,r)})}(),B=function(){function t(t,n){this.xf=n,this.n=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return 0===this.n?N(t):(this.n-=1,this.xf["@@transducer/step"](t,n))},l(function(n,r){return new t(n,r)})}(),Y=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return this.f(n)?this.xf["@@transducer/step"](t,n):N(t)},l(function(n,r){return new t(n,r)})}(),H=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,n){return this.f(t,n)},function(n){return new t(n)}}(),V=l(function(t,n){return t+n}),G=p(function(t,n,r){if(n>=r.length||n<-r.length)return r;var e=0>n?r.length:0,u=e+n,i=c(r);return i[u]=t(r[u]),i}),K=s(function(t){return function(){return t}}),$=l(function(t,n){return t&&n}),X=l(function(t,n){return c(n,[t])}),Z=l(function(t,n){return t.apply(this,n)}),J=p(function(t,n,r){var e={};for(var u in r)e[u]=r[u];return e[t]=n,e}),Q=p(function Su(t,n,r){switch(t.length){case 0:return r;case 1:return J(t[0],n,r);default:return J(t[0],Su(k(t,1),n,Object(r[t[0]])),r)}}),tt=l(function(t,n){return u(t.length,function(){return t.apply(n,arguments)})}),nt=s(function(t){return function(n,r){return t(n,r)?-1:t(r,n)?1:0}}),rt=s(function(t){return function(){for(var n=0;nu;){var i=t(n[u]);r[i]=(m(i,r)?r[i]:0)+1,u+=1}return r}),it=l(function(t,n){return 1===t?s(n):u(t,d(t,[],n))}),ot=V(-1),at=l(function(t,n){return null==n||n!==n?t:n}),ct=p(function(t,n,r){for(var e=[],u=0,i=n.length,o=et(t);i>u;)o(n[u],r)||o(n[u],e)||(e[e.length]=n[u]),u+=1;return e}),ft=l(function(t,n){var r={};for(var e in n)e!==t&&(r[e]=n[e]);return r}),st=l(function ju(t,n){switch(t.length){case 0:return n;case 1:return ft(t[0],n);default:var r=t[0],e=k(t,1);return null==n[r]?n:J(r,ju(e,n[r]),n)}}),lt=l(function(t,n){return t/n}),pt=l(function(t,n){for(var r=n.length-1;r>=0&&t(n[r]);)r-=1;return k(n,0,r+1)}),dt=s(function(t){return null!=t&&"function"==typeof t.empty?t.empty():null!=t&&null!=t.constructor&&"function"==typeof t.constructor.empty?t.constructor.empty():w(t)?[]:E(t)?"":j(t)?{}:b(t)?function(){return arguments}():void 0}),ht=l(function Ou(t,n){var r,e,u,i={};for(e in n)r=t[e],u=typeof r,i[e]="function"===u?r(n[e]):"object"===u?Ou(t[e],n[e]):n[e];return i}),gt=s(function(t){for(var n=0,r=t.length,e={};r>n;)w(t[n])&&t[n].length&&(e[t[n][0]]=t[n][1]),n+=1;return e}),yt=l(function(t,n){return t>n}),mt=l(function(t,n){return t>=n}),vt=l(m),bt=l(function(t,n){return t in n}),wt=l(function(t,n){return t===n?0!==t||1/t===1/n:t!==t&&n!==n}),xt=s(v),St=p(function(t,n,r){return it(Math.max(t.length,n.length,r.length),function(){return t.apply(this,arguments)?n.apply(this,arguments):r.apply(this,arguments)})}),jt=V(1),Ot=p(function(t,n,r){t=t=0?t:r.length;var e=k(r);return e.splice(t,0,n),e}),Et=p(function(t,n,r){return t=t=0?t:r.length,c(c(k(r,0,t),n),k(r,t))}),Mt=l(function(t,n){return null!=n&&n.constructor===t||n instanceof t}),Tt=s(function(t){return w(t)?!0:t?"object"!=typeof t?!1:t instanceof String?!1:1===t.nodeType?!!t.length:0===t.length?!0:t.length>0?t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1):!1:!1}),Pt=s(function(t){return null==t}),_t=function(){var t=!{toString:null}.propertyIsEnumerable("toString"),n=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],r=function(t,n){for(var r=0;r=0;)u=n[i],m(u,e)&&!r(o,u)&&(o[o.length]=u),i-=1;return o})}(),Dt=s(function(t){var n,r=[];for(n in t)r[r.length]=n;return r}),At=s(function(t){return null!=t&&Mt(Number,t.length)?t.length:NaN}),Nt=l(function(t,n){return n>t}),kt=l(function(t,n){return n>=t}),Rt=p(function(t,n,r){for(var e=0,u=r.length,i=[],o=[n];u>e;)o=t(o[0],r[e]),i[e]=o[1],e+=1;return[o[0],i]}),Wt=p(function(t,n,r){for(var e=r.length-1,u=[],i=[n];e>=0;)i=t(i[0],r[e]),u[e]=i[1],e-=1;return[i[0],u]}),It=l(function(t,n){return n.match(t)||[]}),Ct=l(function(t,n){return x(t)?!x(n)||1>n?NaN:(t%n+n)%n:NaN}),Ut=l(function(t,n){return n>t?n:t}),qt=p(function(t,n,r){return t(r)>t(n)?r:n}),Ft=l(function(t,n){for(var r={},e=_t(t),u=0;un?n:t}),zt=p(function(t,n,r){return t(r)t?n.length+t:t;return E(n)?n.charAt(r):n[r]}),$t=s(function(t){return function(){return Kt(t,arguments)}}),Xt=l(function(t,n){var r={};return r[t]=n,r}),Zt=s(P),Jt=s(function(t){var n,r=!1;return function(){return r?n:(r=!0,n=t.apply(this,arguments))}}),Qt=l(function(t,n){return t||n}),tn=function(){var t=function(n){return{value:n,map:function(r){return t(r(n))}}};return p(function(n,r,e){return n(function(n){return t(r(n))})(e).value})}(),nn=l(function(t,n){return[t,n]}),rn=l(function(t,n){if(null!=n){for(var r=n,e=0;null!=r&&ee;){var i=t[e];r[i]=n[i],e+=1}return r}),an=l(function(t,n){var r={};for(var e in n)t(n[e],e,n)&&(r[e]=n[e]);return r}),cn=l(function(t,n){return c([t],n)}),fn=l(function(t,n){return n[t]}),sn=p(function(t,n,r){return null!=r&&m(n,r)?r[n]:t}),ln=p(function(t,n,r){return t(r[n])}),pn=l(function(t,n){for(var r=t.length,e=[],u=0;r>u;)e[u]=n[t[u]],u+=1;return e}),dn=l(function(t,n){if(!S(t)||!S(n))throw new TypeError("Both arguments to range must be numbers");for(var r=[],e=t;n>e;)r.push(e),e+=1;return r}),hn=p(function(t,n,r){for(var e=r.length-1;e>=0;)n=t(n,r[e]),e-=1;return n}),gn=s(N),yn=p(function(t,n,r){return c(k(r,0,Math.min(t,r.length)),k(r,Math.min(r.length,t+n)))}),mn=p(function(t,n,r){return r.replace(t,n)}),vn=s(function(t){return E(t)?t.split("").reverse().join(""):k(t).reverse()}),bn=p(function(t,n,r){for(var e=0,u=r.length,i=[n];u>e;)n=t(n,r[e]),i[e+1]=n,e+=1;return i}),wn=p(function(t,n,r){return tn(t,K(n),r)}),xn=l(function(t,n){return k(n).sort(t)}),Sn=l(function(t,n){return k(n).sort(function(n,r){var e=t(n),u=t(r);return u>e?-1:e>u?1:0})}),jn=l(function(t,n){return t-n}),On=l(function(t,n){for(var r=n.length-1;r>=0&&t(n[r]);)r-=1;return k(n,r+1,1/0)}),En=l(function(t,n){return t(n),n}),Mn=l(function(t,n){for(var r=Number(n),e=new Array(r),u=0;r>u;)e[u]=t(u),u+=1;return e}),Tn=s(function(t){var n=[];for(var r in t)m(r,t)&&(n[n.length]=[r,t[r]]);return n}),Pn=s(function(t){var n=[];for(var r in t)n[n.length]=[r,t[r]];return n}),_n=function(){var t=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",n="​",r="function"==typeof String.prototype.trim;return s(r&&!t.trim()&&n.trim()?function(t){return t.trim()}:function(n){var r=new RegExp("^["+t+"]["+t+"]*"),e=new RegExp("["+t+"]["+t+"]*$");return n.replace(r,"").replace(e,"")})}(),Dn=s(function(t){return null===t?"Null":void 0===t?"Undefined":Object.prototype.toString.call(t).slice(8,-1)}),An=s(function(t){return function(){return t(k(arguments))}}),Nn=s(function(t){return Ht(1,t)}),kn=l(function(t,n){return it(t,function(){for(var r,e=1,u=n,i=0;t>=e&&"function"==typeof u;)r=e===t?arguments.length:i+u.length,u=u.apply(this,k(arguments,i,r)),e+=1,i=r;return u})}),Rn=l(function(t,n){for(var r=t(n),e=[];r&&r.length;)e[e.length]=r[0],r=t(r[1]);return e}),Wn=l(function(t,n){for(var r,e=0,u=n.length,i=[];u>e;)r=n[e],f(t,r,i)||(i[i.length]=r),e+=1;return i}),In=p(function(t,n,r){return t(r)?r:n(r)}),Cn=p(function(t,n,r){return G(K(n),t,r)}),Un=s(function(t){for(var n=_t(t),r=n.length,e=[],u=0;r>u;)e[u]=t[n[u]],u+=1;return e}),qn=s(function(t){var n,r=[];for(n in t)r[r.length]=t[n];return r}),Fn=function(){var t=function(t){return{value:t,map:function(){return this}}};return l(function(n,r){return n(t)(r).value})}(),Ln=p(function(t,n,r){return t(r)?n(r):r}),zn=l(function(t,n){for(var r in t)if(m(r,t)&&!t[r](n[r]))return!1;return!0}),Bn=l(function(t,n){return it(t.length,function(){return n.apply(this,c([t],arguments))})}),Yn=l(function(t,n){for(var r,e=0,u=t.length,i=n.length,o=[];u>e;){for(r=0;i>r;)o[o.length]=[t[e],n[r]],r+=1;e+=1}return o}),Hn=l(function(t,n){for(var r=[],e=0,u=Math.min(t.length,n.length);u>e;)r[e]=[t[e],n[e]],e+=1;return r}),Vn=l(function(t,n){for(var r=0,e=t.length,u={};e>r;)u[t[r]]=n[r],r+=1;return u}),Gn=p(function(t,n,r){for(var e=[],u=0,i=Math.min(n.length,r.length);i>u;)e[u]=t(n[u],r[u]),u+=1;return e}),Kn=K(!1),$n=K(!0),Xn=function(t,n){for(var r=0,e=n.length-(t-1),u=new Array(e>=0?e:0);e>r;)u[r]=k(n,r,r+t),r+=1;return u},Zn=function(t,n){return function(){var r=arguments.length;if(0===r)return n();var e=arguments[r-1];return w(e)||"function"!=typeof e[t]?n.apply(this,arguments):e[t].apply(e,k(arguments,0,r-1))}},Jn=function Eu(t,n,r){var e=function(e){for(var u=n.length,i=0;u>i;){if(t===n[i])return r[i];i+=1}n[i+1]=t,r[i+1]=e;for(var o in t)e[o]=Eu(t[o],n,r);return e};switch(Dn(t)){case"Object":return e({});case"Array":return e([]);case"Date":return new Date(t);case"RegExp":return o(t);default:return t}},Qn=function(t){return l(function(n,r){return u(Math.max(0,n.length-r.length),function(){return n.apply(this,t(r,arguments))})})},tr=function(t,n,r){return function(){var e=arguments.length;if(0===e)return r();var u=arguments[e-1];if(!w(u)){var i=k(arguments,0,e-1);if("function"==typeof u[t])return u[t].apply(u,i);if(M(u)){var o=n.apply(null,i);return o(u)}}return r.apply(this,arguments)}},nr=function Mu(t,n,r,e){if(wt(t,n))return!0;if(Dn(t)!==Dn(n))return!1;if(null==t||null==n)return!1;if("function"==typeof t.equals||"function"==typeof n.equals)return"function"==typeof t.equals&&t.equals(n)&&"function"==typeof n.equals&&n.equals(t);switch(Dn(t)){case"Arguments":case"Array":case"Object":break;case"Boolean":case"Number":case"String":if(typeof t!=typeof n||!wt(t.valueOf(),n.valueOf()))return!1;break;case"Date":if(!wt(t.valueOf(),n.valueOf()))return!1;break;case"RegExp":if(t.source!==n.source||t.global!==n.global||t.ignoreCase!==n.ignoreCase||t.multiline!==n.multiline||t.sticky!==n.sticky||t.unicode!==n.unicode)return!1;break;case"Map":case"Set":if(!Mu(i(t.entries()),i(n.entries()),r,e))return!1;break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":break;case"ArrayBuffer":break;default:return!1}var u=_t(t);if(u.length!==_t(n).length)return!1;for(var o=r.length-1;o>=0;){if(r[o]===t)return e[o]===n;o-=1}for(r.push(t),e.push(n),o=u.length-1;o>=0;){var a=u[o];if(!m(a,n)||!Mu(n[a],t[a],r,e))return!1;o-=1}return r.pop(),e.pop(),!0},rr=function(t){return function n(r){for(var e,u,i,o=[],a=0,c=r.length;c>a;){if(Tt(r[a]))for(e=t?n(r[a]):r[a],u=0,i=e.length;i>u;)o[o.length]=e[u],u+=1;else o[o.length]=r[a];a+=1}return o}},er=function(){function t(t,n,r){for(var e=0,u=r.length;u>e;){if(n=t["@@transducer/step"](n,r[e]),n&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}e+=1}return t["@@transducer/result"](n)}function n(t,n,r){for(var e=r.next();!e.done;){if(n=t["@@transducer/step"](n,e.value),n&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}e=r.next()}return t["@@transducer/result"](n)}function r(t,n,r){return t["@@transducer/result"](r.reduce(tt(t["@@transducer/step"],t),n))}var e="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";return function(u,i,o){if("function"==typeof u&&(u=H(u)),Tt(o))return t(u,i,o);if("function"==typeof o.reduce)return r(u,i,o);if(null!=o[e])return n(u,i,o[e]());if("function"==typeof o.next)return n(u,i,o);throw new TypeError("reduce: list must be array or iterable")}}(),ur=function(){function t(t,n){this.xf=n,this.f=t,this.all=!0}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.all&&(t=this.xf["@@transducer/step"](t,!0)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){return this.f(n)||(this.all=!1,t=N(this.xf["@@transducer/step"](t,!1))),t},l(function(n,r){return new t(n,r)})}(),ir=function(){function t(t,n){this.xf=n,this.f=t,this.any=!1}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){return this.any||(t=this.xf["@@transducer/step"](t,!1)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){return this.f(n)&&(this.any=!0,t=N(this.xf["@@transducer/step"](t,!0))),t},l(function(n,r){return new t(n,r)})}(),or=function(){function t(t,n){this.xf=n,this.pos=0,this.full=!1,this.acc=new Array(t)}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return this.store(n),this.full?this.xf["@@transducer/step"](t,this.getCopy()):t},t.prototype.store=function(t){this.acc[this.pos]=t,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},t.prototype.getCopy=function(){return c(k(this.acc,this.pos),k(this.acc,0,this.pos))},l(function(n,r){return new t(n,r)})}(),ar=function(){function t(t,n){this.xf=n,this.n=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){return this.n>0?(this.n-=1,t):this.xf["@@transducer/step"](t,n)},l(function(n,r){return new t(n,r)})}(),cr=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=I.result,t.prototype["@@transducer/step"]=function(t,n){if(this.f){if(this.f(n))return t;this.f=null}return this.xf["@@transducer/step"](t,n)},l(function(n,r){return new t(n,r)})}(),fr=function(){function t(t,n){this.xf=n,this.f=t,this.inputs={}}return t.prototype["@@transducer/init"]=I.init,t.prototype["@@transducer/result"]=function(t){var n;for(n in this.inputs)if(m(n,this.inputs)&&(t=this.xf["@@transducer/step"](t,this.inputs[n]),t["@@transducer/reduced"])){t=t["@@transducer/value"];break}return this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,n){var r=this.f(n);return this.inputs[r]=this.inputs[r]||[r,[]],this.inputs[r][1]=X(n,this.inputs[r][1]),t},l(function(n,r){return new t(n,r)})}(),sr=s(function(t){return it(t.length,function(){var n=0,r=arguments[0],e=arguments[arguments.length-1],u=k(arguments);return u[0]=function(){var t=r.apply(this,c(arguments,[n,e]));return n+=1,t},t.apply(this,u)})}),lr=l(tr("all",ur,function(t,n){for(var r=0;rr&&t(n[r]);)r+=1;return k(n,r)})),br=l(function(t,n){return nr(t,n,[],[])}),wr=l(tr("filter",C,h)),xr=l(tr("find",U,function(t,n){for(var r=0,e=n.length;e>r;){if(t(n[r]))return n[r];r+=1}})),Sr=l(tr("findIndex",q,function(t,n){for(var r=0,e=n.length;e>r;){if(t(n[r]))return r;r+=1}return-1})),jr=l(tr("findLast",F,function(t,n){for(var r=n.length-1;r>=0;){if(t(n[r]))return n[r];r-=1}})),Or=l(tr("findLastIndex",L,function(t,n){for(var r=n.length-1;r>=0;){if(t(n[r]))return r;r-=1}return-1})),Er=s(rr(!0)),Mr=s(function(t){return mr(function(n,r){var e=k(arguments);return e[0]=r,e[1]=n,t.apply(this,e)})}),Tr=l(Zn("forEach",function(t,n){for(var r=n.length,e=0;r>e;)t(n[e]),e+=1;return n})),Pr=s(y(_t)),_r=s(y(Dt)),Dr=l(tr("groupBy",fr,function(t,n){return er(function(n,r){var e=t(r);return n[e]=X(r,n[e]||(n[e]=[])),n},{},n)})),Ar=Kt(0),Nr=p(function(t,n,r){for(var e=[],u=0;ue;)e===u-1?r.push(n[e]):r.push(n[e],t),e+=1;return r})),Rr=s(function(t){for(var n=_t(t),r=n.length,e=0,u={};r>e;){var i=n[e],o=t[i],a=m(o,u)?u[o]:u[o]=[];a[a.length]=i,e+=1}return u}),Wr=s(function(t){for(var n=_t(t),r=n.length,e=0,u={};r>e;){var i=n[e];u[t[i]]=i,e+=1}return u}),Ir=s(function(t){return null!=t&&br(t,dt(t))}),Cr=Kt(-1),Ur=l(function(t,n){if("function"!=typeof n.lastIndexOf||w(n)){for(var r=n.length-1;r>=0;){if(br(n[r],t))return r;r-=1}return-1}return n.lastIndexOf(t)}),qr=l(tr("map",z,function(t,n){switch(Object.prototype.toString.call(n)){case"[object Function]":return it(n.length,function(){return t.call(this,n.apply(this,arguments))});case"[object Object]":return er(function(r,e){return r[e]=t(n[e]),r},{},_t(n));default:return T(t,n)}})),Fr=l(function(t,n){return er(function(r,e){return r[e]=t(n[e]),r},{},_t(n))}),Lr=l(function(t,n){return er(function(r,e){return r[e]=t(n[e],e,n),r},{},_t(n))}),zr=l(a(tr("any",ir,pr))),Br=Qn(c),Yr=Qn(Mr(c)),Hr=l(function(t,n){return er(function(n,r){var e=n[t(r)?0:1];return e[e.length]=r,n},[[],[]],n)}),Vr=p(function(t,n,r){return br(rn(t,r),n)}),Gr=l(function(t,n){return qr(fn(t),n)}),Kr=p(function(t,n,r){return ln(br(n),t,r)}),$r=p(function(t,n,r){return ln(Mt(t),n,r)}),Xr=p(er),Zr=l(function(t,n){return wr(a(t),n)}),Jr=l(function(t,n){return Mn(K(t),n)}),Qr=p(Zn("slice",function(t,n,r){return Array.prototype.slice.call(r,t,n)})),te=l(function(t,n){if(0>=t)throw new Error("First argument to splitEvery must be a positive integer");for(var r=[],e=0;et?1/0:t,n)})),ue=l(tr("takeWhile",Y,function(t,n){for(var r=0,e=n.length;e>r&&t(n[r]);)r+=1;return k(n,0,r)})),ie=it(4,function(t,n,r,e){return er(t("function"==typeof n?H(n):n),r,e)}),oe=p(function(t,n,r){return Wn(t,c(n,r))}),ae=Wn(br),ce=l(function(t,n){return mr(u(n.length,function(){for(var r=[],e=0;en;){if(!t[n].apply(this,arguments))return!1;n+=1}return!0})}),ge=s(function(t){for(var n=t.length,r=0;n>r;){if(le(t,t[r],r+1)>=0)return!1;r+=1}return!0}),ye=s(function(t){return it(Xr(Ut,0,Gr("length",t)),function(){for(var n=0,r=t.length;r>n;){if(t[n].apply(this,arguments))return!0;n+=1}return!1})}),me=l(function(t,n){return"function"==typeof t.ap?t.ap(n):"function"==typeof t?it(Math.max(t.length,n.length),function(){return t.apply(this,arguments)(n.apply(this,arguments))}):er(function(t,r){return c(t,qr(r,n))},[],t)}),ve=mr(function(t){return t.apply(this,k(arguments,1))}),be=l(tr("chain",de,function(t,n){return"function"==typeof n?function(){return n.call(this,t.apply(this,arguments)).apply(this,arguments)}:rr(!1)(qr(t,n))})),we=p(function(t,n,r){function e(n,r){return me(qr(cn,t(r)),n)}return hn(e,n([]),r)}),xe=l(function(t,n){if(t>10)throw new Error("Constructor with greater than ten arguments");return 0===t?function(){return new n}:mr(Ht(t,function(t,r,e,u,i,o,a,c,f,s){switch(arguments.length){case 1:return new n(t);case 2:return new n(t,r);case 3:return new n(t,r,e);case 4:return new n(t,r,e,u);case 5:return new n(t,r,e,u,i);case 6:return new n(t,r,e,u,i,o);case 7:return new n(t,r,e,u,i,o,a);case 8:return new n(t,r,e,u,i,o,a,c);case 9:return new n(t,r,e,u,i,o,a,c,f);case 10:return new n(t,r,e,u,i,o,a,c,f,s)}}))}),Se=l(function(t,n){return it(Math.max.apply(Math,Gr("length",n)),function(){var r=arguments,e=this;return t.apply(e,T(function(t){return t.apply(e,r)},n))})}),je=l(tr("drop",ar,function(t,n){return Qr(Math.max(0,t),1/0,n)})),Oe=l(function(t,n){return ee(te;)t(Cr(r),n[e])||(r[r.length]=n[e]),e+=1;return r})),Me=p(function(t,n,r){return br(t(n),t(r))}),Te=p(function(t,n,r){return br(n[t],r[t])}),Pe=l(function(t,n){ 2 | return"function"!=typeof n.indexOf||w(n)?le(n,t,0):n.indexOf(t)}),_e=Qr(0,-1),De=p(function(t,n,r){return M(t)?er(n(t),t["@@transducer/init"](),r):er(n(pe(t)),t,r)}),Ae=ge,Ne=l(function(t,n){return function(r){return function(e){return qr(function(t){return n(t,e)},r(t(e)))}}}),ke=s(function(t){return Ne(Kt(t),Cn(t))}),Re=s(function(t){return Ne(fn(t),J(t))}),We=l(function(t,n){var r=it(t,n);return it(t,function(){return er(me,qr(r,arguments[0]),k(arguments,1))})}),Ie=s(function(t){return ne(t)/t.length}),Ce=s(function(t){var n=t.length;if(0===n)return NaN;var r=2-n%2,e=(n-r)/2;return Ie(k(t).sort(function(t,n){return n>t?-1:t>n?1:0}).slice(e,e+r))}),Ue=s(function(t){return Xr(Ft,{},t)}),qe=function(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return u(arguments[0].length,Xr(_,arguments[0],re(arguments)))},Fe=function(){if(0===arguments.length)throw new Error("pipeP requires at least one argument");return u(arguments[0].length,Xr(D,arguments[0],re(arguments)))},Le=Xr(Yt,1),ze=ce(T,[on,xt]),Be=l(function(t,n){return je(t>=0?n.length-t:0,n)}),Ye=be(v),He=function(t,n){return le(n,t,0)>=0},Ve=function Tu(t,n){var r=function(r){var e=n.concat([t]);return He(r,e)?"":Tu(r,e)},e=function(t,n){return T(function(n){return A(n)+": "+r(t[n])},n.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+T(r,t).join(", ")+"))";case"[object Array]":return"["+T(r,t).concat(e(t,Zr(function(t){return/^\d+$/.test(t)},_t(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+A(R(t))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t===-(1/0)?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":A(t);case"[object Undefined]":return"undefined";default:return"function"==typeof t.constructor&&"Object"!==t.constructor.name&&"function"==typeof t.toString&&"[object Object]"!==t.toString()?t.toString():"{"+e(t,_t(t)).join(", ")+"}"}},Ge=we(xt),Ke=function(){if(0===arguments.length)throw new Error("compose requires at least one argument");return qe.apply(this,vn(arguments))},$e=function(){return Ke.apply(this,cn(xt,qr(be,arguments)))},Xe=function(){if(0===arguments.length)throw new Error("composeP requires at least one argument");return Fe.apply(this,vn(arguments))},Ze=s(function(t){return xe(t.length,t)}),Je=l(He),Qe=l(function(t,n){for(var r=[],e=0,u=t.length;u>e;)He(t[e],n)||He(t[e],r)||(r[r.length]=t[e]),e+=1;return r}),tu=s(tr("dropRepeats",W(br),Ee(br))),nu=l(function(t,n){return ae(h(Mr(He)(t),n))}),ru=s(function(t){return We(t.length,t)}),eu=l(function(t,n){var r={};for(var e in n)He(e,t)||(r[e]=n[e]);return r}),uu=function(){return $e.apply(this,vn(arguments))},iu=s(function(t){return Ve(t,[])}),ou=l(Ke(ae,c)),au=l(function(t,n){for(var r,e,u=0,i=[],o=[];u

(.*)
NDBC\/(.*)<\/title/i,o=r.PARSE_ERROR="Couldn't parse station data";r["default"]=function(t){var n=i.exec(t);if(!n)throw o+" no id";var r=n[1],a={id:r},c=e.exec(t),f=u.exec(t);if(!c||c.length<2?a.name=r:a.name=c[1],!f||f.length<2)throw o+" no coords";var s=f[0].split(" "),l=s[0],p=s[1];return a.longitude=-1===p.indexOf("W")?parseFloat(p):-parseFloat(p),a.latitude=-1===l.indexOf("S")?parseFloat(l):-parseFloat(l),a}},{}],8:[function(t,n,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r["default"]={STN:"stationID",WDIR:"windDirection",WSPD:"windSpeed",GST:"gustSpeed",WVHT:"waveHeight",DPD:"wavePeriod",APD:"averageWavePeriod",MWD:"dominantPeriodWaveDirection",PRES:"pressure",ATMP:"airTemp",WTMP:"waterTemp",DEWP:"dewpointTemp",PTDY:"pressureTendency",TIDE:"tide",LAT:"latitude",LON:"longitude",YYYY:"year",YY:"year",MM:"month",DD:"day",hh:"hour",mm:"minute"}},{}],9:[function(t,n,r){"use strict";function e(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(r,"__esModule",{value:!0});var u=t("ramda"),i=e(u),o=t("./util/func-util"),a=e(o),c=t("./util/get-noaa-date"),f=e(c),s=function(t){if(6===t.length){var n=new Date(t[0]+" "+t[2]+" GMT+0000");if(a["default"].isDate(n))return{date:n,tideSize:parseInt(t[4])/100,isHighTide:-1!==t[5].indexOf("H")}}},l=i["default"].ifElse(i["default"].is(String),i["default"].pipe(i["default"].split(" "),a["default"].compact,s),i["default"].identity),p=i["default"].pipe(i["default"].split("\n"),i["default"].map(l),a["default"].compact),d=i["default"].pipe(i["default"].split("\n"),i["default"].tail),h=i["default"].pipe(i["default"].split(","),function(t){return{date:new Date(t[0].replace(/-/g,"/")+" GMT+0000"),tideSize:parseFloat(t[1])}});r["default"]={getURL:function(t){var n=arguments.length<=1||void 0===arguments[1]?48:arguments[1],r=n;return"http://tidesandcurrents.noaa.gov/api/datagetter?begin_date="+(0,f["default"])()+"&range="+r+"&station="+t+"&product=predictions&datum=MLLW&units=metric&time_zone=gmt&application=ports_screen&format=csv"},parseTideTableLine:l,parseTideTable:i["default"].ifElse(i["default"].is(String),p,i["default"].identity),parse:i["default"].pipe(d,i["default"].map(h)),getCurrent:function(t,n){var r=n||new Date,e={};return i["default"].find(function(t){var n=t.date;if(a["default"].isDate(n)){if(n.getTime()>r.getTime())return t.isIncreasing=t.tideSize>e.tideSize,!0;t.tideSize!==e.tideSize&&(e=t)}},t)},getNextHighOrLow:function(t,n){var r=n||new Date,e=void 0,u=void 0,i=void 0,o={};return t.some(function(t){var n=new Date(t.date);return a["default"].isDate(n)?e&&(u&&t.tideSizeo.tideSize&&(i=o),i)?(o.isHighTide=u,!0):(!e&&n.getTime()>r.getTime()&&(u=t.tideSize>o.tideSize,e=!0),void(t.tideSize!==o.tideSize&&(o=t))):!1}),i}}},{"./util/func-util":11,"./util/get-noaa-date":12,ramda:1}],10:[function(t,n,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=function(t){return t>=0&&11.25>=t?"N":t>348.75&&360>=t?"N":t>11.25&&33.75>=t?"NNE":t>33.75&&56.25>=t?"NE":t>56.25&&78.75>=t?"ENE":t>78.75&&101.25>=t?"E":t>101.25&&123.75>=t?"ESE":t>123.75&&146.25>=t?"SE":t>146.25&&168.75>=t?"SSE":t>168.75&&191.25>=t?"S":t>191.25&&213.75>=t?"SSW":t>213.75&&236.25>=t?"SW":t>236.25&&258.75>=t?"WSW":t>258.75&&281.25>=t?"W":t>281.25&&303.75>=t?"WNW":t>303.75&&326.25>=t?"NW":"NNW"}},{}],11:[function(t,n,r){"use strict";function e(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(r,"__esModule",{value:!0});var u=t("ramda"),i=e(u),o=i["default"].pipe(i["default"].reject(i["default"].isNil),i["default"].filter(Boolean)),a=function(t){return isFinite(t)&&!isNaN(parseFloat(t))},c=function(t){return i["default"].is(Date,t)&&a(t.getTime())};r["default"]={compact:o,isDate:c}},{ramda:1}],12:[function(t,n,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=function(t){var n=t||new Date,r=(n.getUTCMonth()+1).toString(),e=n.getUTCDate().toString();return 1===r.length&&(r="0"+r),1===e.length&&(e="0"+e),n.getUTCFullYear().toString()+r+e}},{}]},{},[2])(2)}); -------------------------------------------------------------------------------- /test/data/tide-annual.txt: -------------------------------------------------------------------------------- 1 | NOAA/NOS/CO-OPS 2 | Disclaimer: These data are based upon the latest information available as of the date of your request, and may differ from the published tide tables. 3 | Product Type: Annual Tide Prediction 4 | StationName: ATLANTIC BEACH 5 | State: NY 6 | Stationid: 8516881 7 | Prediction Type: Harmonic 8 | From: 20150101 00:00 - 20151231 23:59 9 | Units: feet(ft) also in centimeters(cm) 10 | Time Zone: LST/LDT 11 | Datum: MLLW 12 | Interval Type: High/Low Tide Predictions 13 | 14 | Date Day Time Pred(Ft) Pred(cm) High/Low 15 | 2015/01/01 Thu 04:16 AM 4.7 143 H 16 | 2015/01/01 Thu 10:38 AM 0.0 0 L 17 | 2015/01/01 Thu 04:39 PM 3.7 113 H 18 | 2015/01/01 Thu 10:40 PM -0.1 -3 L 19 | 2015/01/02 Fri 05:08 AM 4.8 146 H 20 | 2015/01/02 Fri 11:30 AM -0.1 -3 L 21 | 2015/01/02 Fri 05:32 PM 3.8 116 H 22 | 2015/01/02 Fri 11:29 PM -0.1 -3 L 23 | 2015/01/03 Sat 05:56 AM 4.8 146 H 24 | 2015/01/03 Sat 12:17 PM -0.2 -6 L 25 | 2015/01/03 Sat 06:21 PM 3.8 116 H 26 | 2015/01/04 Sun 12:15 AM -0.1 -3 L 27 | 2015/01/04 Sun 06:40 AM 4.9 149 H 28 | 2015/01/04 Sun 01:00 PM -0.3 -9 L 29 | 2015/01/04 Sun 07:06 PM 3.9 119 H 30 | 2015/01/05 Mon 12:59 AM -0.1 -3 L 31 | 2015/01/05 Mon 07:22 AM 4.8 146 H 32 | 2015/01/05 Mon 01:42 PM -0.3 -9 L 33 | 2015/01/05 Mon 07:49 PM 3.9 119 H 34 | 2015/01/06 Tue 01:42 AM 0.0 0 L 35 | 2015/01/06 Tue 08:02 AM 4.8 146 H 36 | 2015/01/06 Tue 02:23 PM -0.3 -9 L 37 | 2015/01/06 Tue 08:31 PM 3.9 119 H 38 | 2015/01/07 Wed 02:25 AM 0.1 3 L 39 | 2015/01/07 Wed 08:43 AM 4.6 140 H 40 | 2015/01/07 Wed 03:04 PM -0.3 -9 L 41 | 2015/01/07 Wed 09:14 PM 3.9 119 H 42 | 2015/01/08 Thu 03:09 AM 0.2 6 L 43 | 2015/01/08 Thu 09:23 AM 4.5 137 H 44 | 2015/01/08 Thu 03:43 PM -0.3 -9 L 45 | 2015/01/08 Thu 09:56 PM 3.9 119 H 46 | 2015/01/09 Fri 03:52 AM 0.3 9 L 47 | 2015/01/09 Fri 10:04 AM 4.3 131 H 48 | 2015/01/09 Fri 04:23 PM -0.2 -6 L 49 | 2015/01/09 Fri 10:39 PM 3.8 116 H 50 | 2015/01/10 Sat 04:35 AM 0.4 12 L 51 | 2015/01/10 Sat 10:45 AM 4.1 125 H 52 | 2015/01/10 Sat 05:03 PM -0.1 -3 L 53 | 2015/01/10 Sat 11:24 PM 3.8 116 H 54 | 2015/01/11 Sun 05:21 AM 0.5 15 L 55 | 2015/01/11 Sun 11:30 AM 3.8 116 H 56 | 2015/01/11 Sun 05:45 PM 0.1 3 L 57 | 2015/01/12 Mon 12:12 AM 3.8 116 H 58 | 2015/01/12 Mon 06:12 AM 0.6 18 L 59 | 2015/01/12 Mon 12:19 PM 3.6 110 H 60 | 2015/01/12 Mon 06:31 PM 0.2 6 L 61 | 2015/01/13 Tue 01:02 AM 3.9 119 H 62 | 2015/01/13 Tue 07:08 AM 0.7 21 L 63 | 2015/01/13 Tue 01:12 PM 3.5 107 H 64 | 2015/01/13 Tue 07:21 PM 0.2 6 L 65 | 2015/01/14 Wed 01:54 AM 4.0 122 H 66 | 2015/01/14 Wed 08:06 AM 0.6 18 L 67 | 2015/01/14 Wed 02:07 PM 3.4 104 H 68 | 2015/01/14 Wed 08:14 PM 0.2 6 L 69 | 2015/01/15 Thu 02:45 AM 4.2 128 H 70 | 2015/01/15 Thu 09:03 AM 0.4 12 L 71 | 2015/01/15 Thu 03:04 PM 3.4 104 H 72 | 2015/01/15 Thu 09:08 PM 0.1 3 L 73 | 2015/01/16 Fri 03:39 AM 4.4 134 H 74 | 2015/01/16 Fri 10:00 AM 0.2 6 L 75 | 2015/01/16 Fri 04:02 PM 3.5 107 H 76 | 2015/01/16 Fri 10:02 PM -0.1 -3 L 77 | 2015/01/17 Sat 04:33 AM 4.7 143 H 78 | 2015/01/17 Sat 10:54 AM -0.1 -3 L 79 | 2015/01/17 Sat 04:59 PM 3.8 116 H 80 | 2015/01/17 Sat 10:57 PM -0.3 -9 L 81 | 2015/01/18 Sun 05:25 AM 5.0 152 H 82 | 2015/01/18 Sun 11:46 AM -0.4 -12 L 83 | 2015/01/18 Sun 05:53 PM 4.0 122 H 84 | 2015/01/18 Sun 11:49 PM -0.5 -15 L 85 | 2015/01/19 Mon 06:15 AM 5.2 158 H 86 | 2015/01/19 Mon 12:35 PM -0.8 -24 L 87 | 2015/01/19 Mon 06:44 PM 4.3 131 H 88 | 2015/01/20 Tue 12:41 AM -0.7 -21 L 89 | 2015/01/20 Tue 07:04 AM 5.4 165 H 90 | 2015/01/20 Tue 01:24 PM -1.0 -30 L 91 | 2015/01/20 Tue 07:34 PM 4.6 140 H 92 | 2015/01/21 Wed 01:33 AM -0.8 -24 L 93 | 2015/01/21 Wed 07:54 AM 5.5 168 H 94 | 2015/01/21 Wed 02:14 PM -1.1 -34 L 95 | 2015/01/21 Wed 08:26 PM 4.8 146 H 96 | 2015/01/22 Thu 02:27 AM -0.8 -24 L 97 | 2015/01/22 Thu 08:44 AM 5.4 165 H 98 | 2015/01/22 Thu 03:03 PM -1.2 -37 L 99 | 2015/01/22 Thu 09:17 PM 4.9 149 H 100 | 2015/01/23 Fri 03:20 AM -0.8 -24 L 101 | 2015/01/23 Fri 09:35 AM 5.3 162 H 102 | 2015/01/23 Fri 03:53 PM -1.1 -34 L 103 | 2015/01/23 Fri 10:10 PM 4.9 149 H 104 | 2015/01/24 Sat 04:14 AM -0.6 -18 L 105 | 2015/01/24 Sat 10:27 AM 5.0 152 H 106 | 2015/01/24 Sat 04:43 PM -1.0 -30 L 107 | 2015/01/24 Sat 11:04 PM 4.8 146 H 108 | 2015/01/25 Sun 05:10 AM -0.4 -12 L 109 | 2015/01/25 Sun 11:21 AM 4.6 140 H 110 | 2015/01/25 Sun 05:34 PM -0.7 -21 L 111 | 2015/01/26 Mon 12:00 AM 4.7 143 H 112 | 2015/01/26 Mon 06:09 AM -0.1 -3 L 113 | 2015/01/26 Mon 12:19 PM 4.2 128 H 114 | 2015/01/26 Mon 06:29 PM -0.5 -15 L 115 | 2015/01/27 Tue 12:59 AM 4.6 140 H 116 | 2015/01/27 Tue 07:11 AM 0.1 3 L 117 | 2015/01/27 Tue 01:19 PM 3.9 119 H 118 | 2015/01/27 Tue 07:27 PM -0.2 -6 L 119 | 2015/01/28 Wed 01:58 AM 4.5 137 H 120 | 2015/01/28 Wed 08:15 AM 0.2 6 L 121 | 2015/01/28 Wed 02:19 PM 3.7 113 H 122 | 2015/01/28 Wed 08:25 PM 0.0 0 L 123 | 2015/01/29 Thu 02:55 AM 4.4 134 H 124 | 2015/01/29 Thu 09:17 AM 0.3 9 L 125 | 2015/01/29 Thu 03:19 PM 3.5 107 H 126 | 2015/01/29 Thu 09:23 PM 0.1 3 L 127 | 2015/01/30 Fri 03:52 AM 4.4 134 H 128 | 2015/01/30 Fri 10:17 AM 0.2 6 L 129 | 2015/01/30 Fri 04:18 PM 3.5 107 H 130 | 2015/01/30 Fri 10:18 PM 0.1 3 L 131 | 2015/01/31 Sat 04:46 AM 4.5 137 H 132 | 2015/01/31 Sat 11:10 AM 0.1 3 L 133 | 2015/01/31 Sat 05:12 PM 3.6 110 H 134 | 2015/01/31 Sat 11:09 PM 0.1 3 L 135 | 2015/02/01 Sun 05:35 AM 4.5 137 H 136 | 2015/02/01 Sun 11:56 AM 0.0 0 L 137 | 2015/02/01 Sun 06:00 PM 3.7 113 H 138 | 2015/02/01 Sun 11:56 PM 0.1 3 L 139 | 2015/02/02 Mon 06:19 AM 4.6 140 H 140 | 2015/02/02 Mon 12:37 PM -0.1 -3 L 141 | 2015/02/02 Mon 06:44 PM 3.8 116 H 142 | 2015/02/03 Tue 12:39 AM 0.0 0 L 143 | 2015/02/03 Tue 06:59 AM 4.6 140 H 144 | 2015/02/03 Tue 01:16 PM -0.2 -6 L 145 | 2015/02/03 Tue 07:25 PM 3.9 119 H 146 | 2015/02/04 Wed 01:21 AM 0.0 0 L 147 | 2015/02/04 Wed 07:39 AM 4.6 140 H 148 | 2015/02/04 Wed 01:55 PM -0.3 -9 L 149 | 2015/02/04 Wed 08:05 PM 4.0 122 H 150 | 2015/02/05 Thu 02:02 AM 0.0 0 L 151 | 2015/02/05 Thu 08:18 AM 4.6 140 H 152 | 2015/02/05 Thu 02:34 PM -0.3 -9 L 153 | 2015/02/05 Thu 08:45 PM 4.1 125 H 154 | 2015/02/06 Fri 02:44 AM 0.1 3 L 155 | 2015/02/06 Fri 08:56 AM 4.4 134 H 156 | 2015/02/06 Fri 03:12 PM -0.3 -9 L 157 | 2015/02/06 Fri 09:25 PM 4.1 125 H 158 | 2015/02/07 Sat 03:25 AM 0.1 3 L 159 | 2015/02/07 Sat 09:35 AM 4.3 131 H 160 | 2015/02/07 Sat 03:49 PM -0.2 -6 L 161 | 2015/02/07 Sat 10:04 PM 4.1 125 H 162 | 2015/02/08 Sun 04:06 AM 0.2 6 L 163 | 2015/02/08 Sun 10:14 AM 4.1 125 H 164 | 2015/02/08 Sun 04:26 PM -0.1 -3 L 165 | 2015/02/08 Sun 10:45 PM 4.1 125 H 166 | 2015/02/09 Mon 04:49 AM 0.3 9 L 167 | 2015/02/09 Mon 10:54 AM 3.9 119 H 168 | 2015/02/09 Mon 05:05 PM 0.0 0 L 169 | 2015/02/09 Mon 11:28 PM 4.1 125 H 170 | 2015/02/10 Tue 05:35 AM 0.5 15 L 171 | 2015/02/10 Tue 11:39 AM 3.7 113 H 172 | 2015/02/10 Tue 05:48 PM 0.2 6 L 173 | 2015/02/11 Wed 12:17 AM 4.0 122 H 174 | 2015/02/11 Wed 06:28 AM 0.5 15 L 175 | 2015/02/11 Wed 12:32 PM 3.5 107 H 176 | 2015/02/11 Wed 06:38 PM 0.3 9 L 177 | 2015/02/12 Thu 01:10 AM 4.1 125 H 178 | 2015/02/12 Thu 07:26 AM 0.5 15 L 179 | 2015/02/12 Thu 01:30 PM 3.5 107 H 180 | 2015/02/12 Thu 07:34 PM 0.3 9 L 181 | 2015/02/13 Fri 02:06 AM 4.2 128 H 182 | 2015/02/13 Fri 08:27 AM 0.4 12 L 183 | 2015/02/13 Fri 02:31 PM 3.5 107 H 184 | 2015/02/13 Fri 08:34 PM 0.2 6 L 185 | 2015/02/14 Sat 03:04 AM 4.4 134 H 186 | 2015/02/14 Sat 09:27 AM 0.2 6 L 187 | 2015/02/14 Sat 03:32 PM 3.7 113 H 188 | 2015/02/14 Sat 09:34 PM 0.0 0 L 189 | 2015/02/15 Sun 04:02 AM 4.7 143 H 190 | 2015/02/15 Sun 10:25 AM -0.1 -3 L 191 | 2015/02/15 Sun 04:33 PM 3.9 119 H 192 | 2015/02/15 Sun 10:34 PM -0.2 -6 L 193 | 2015/02/16 Mon 05:00 AM 5.0 152 H 194 | 2015/02/16 Mon 11:20 AM -0.4 -12 L 195 | 2015/02/16 Mon 05:30 PM 4.3 131 H 196 | 2015/02/16 Mon 11:30 PM -0.5 -15 L 197 | 2015/02/17 Tue 05:54 AM 5.2 158 H 198 | 2015/02/17 Tue 12:11 PM -0.8 -24 L 199 | 2015/02/17 Tue 06:23 PM 4.6 140 H 200 | 2015/02/18 Wed 12:24 AM -0.7 -21 L 201 | 2015/02/18 Wed 06:45 AM 5.4 165 H 202 | 2015/02/18 Wed 01:01 PM -1.0 -30 L 203 | 2015/02/18 Wed 07:14 PM 5.0 152 H 204 | 2015/02/19 Thu 01:17 AM -0.9 -27 L 205 | 2015/02/19 Thu 07:35 AM 5.5 168 H 206 | 2015/02/19 Thu 01:50 PM -1.2 -37 L 207 | 2015/02/19 Thu 08:05 PM 5.2 158 H 208 | 2015/02/20 Fri 02:11 AM -0.9 -27 L 209 | 2015/02/20 Fri 08:26 AM 5.5 168 H 210 | 2015/02/20 Fri 02:40 PM -1.2 -37 L 211 | 2015/02/20 Fri 08:56 PM 5.3 162 H 212 | 2015/02/21 Sat 03:04 AM -0.9 -27 L 213 | 2015/02/21 Sat 09:16 AM 5.3 162 H 214 | 2015/02/21 Sat 03:29 PM -1.1 -34 L 215 | 2015/02/21 Sat 09:47 PM 5.3 162 H 216 | 2015/02/22 Sun 03:57 AM -0.7 -21 L 217 | 2015/02/22 Sun 10:07 AM 5.0 152 H 218 | 2015/02/22 Sun 04:18 PM -0.9 -27 L 219 | 2015/02/22 Sun 10:39 PM 5.1 155 H 220 | 2015/02/23 Mon 04:50 AM -0.5 -15 L 221 | 2015/02/23 Mon 11:00 AM 4.6 140 H 222 | 2015/02/23 Mon 05:08 PM -0.6 -18 L 223 | 2015/02/23 Mon 11:33 PM 4.9 149 H 224 | 2015/02/24 Tue 05:46 AM -0.1 -3 L 225 | 2015/02/24 Tue 11:56 AM 4.2 128 H 226 | 2015/02/24 Tue 06:02 PM -0.2 -6 L 227 | 2015/02/25 Wed 12:30 AM 4.7 143 H 228 | 2015/02/25 Wed 06:45 AM 0.2 6 L 229 | 2015/02/25 Wed 12:55 PM 3.9 119 H 230 | 2015/02/25 Wed 06:59 PM 0.1 3 L 231 | 2015/02/26 Thu 01:29 AM 4.5 137 H 232 | 2015/02/26 Thu 07:48 AM 0.4 12 L 233 | 2015/02/26 Thu 01:55 PM 3.7 113 H 234 | 2015/02/26 Thu 07:59 PM 0.3 9 L 235 | 2015/02/27 Fri 02:27 AM 4.3 131 H 236 | 2015/02/27 Fri 08:49 AM 0.5 15 L 237 | 2015/02/27 Fri 02:55 PM 3.6 110 H 238 | 2015/02/27 Fri 08:58 PM 0.5 15 L 239 | 2015/02/28 Sat 03:24 AM 4.2 128 H 240 | 2015/02/28 Sat 09:48 AM 0.5 15 L 241 | 2015/02/28 Sat 03:53 PM 3.6 110 H 242 | 2015/02/28 Sat 09:55 PM 0.5 15 L 243 | 2015/03/01 Sun 04:19 AM 4.3 131 H 244 | 2015/03/01 Sun 10:42 AM 0.4 12 L 245 | 2015/03/01 Sun 04:48 PM 3.7 113 H 246 | 2015/03/01 Sun 10:48 PM 0.4 12 L 247 | 2015/03/02 Mon 05:09 AM 4.3 131 H 248 | 2015/03/02 Mon 11:28 AM 0.3 9 L 249 | 2015/03/02 Mon 05:36 PM 3.8 116 H 250 | 2015/03/02 Mon 11:35 PM 0.3 9 L 251 | 2015/03/03 Tue 05:54 AM 4.4 134 H 252 | 2015/03/03 Tue 12:08 PM 0.1 3 L 253 | 2015/03/03 Tue 06:19 PM 4.0 122 H 254 | 2015/03/04 Wed 12:18 AM 0.2 6 L 255 | 2015/03/04 Wed 06:35 AM 4.5 137 H 256 | 2015/03/04 Wed 12:46 PM 0.0 0 L 257 | 2015/03/04 Wed 06:59 PM 4.2 128 H 258 | 2015/03/05 Thu 12:59 AM 0.1 3 L 259 | 2015/03/05 Thu 07:13 AM 4.5 137 H 260 | 2015/03/05 Thu 01:24 PM -0.1 -3 L 261 | 2015/03/05 Thu 07:37 PM 4.3 131 H 262 | 2015/03/06 Fri 01:39 AM 0.1 3 L 263 | 2015/03/06 Fri 07:52 AM 4.5 137 H 264 | 2015/03/06 Fri 02:01 PM -0.1 -3 L 265 | 2015/03/06 Fri 08:15 PM 4.4 134 H 266 | 2015/03/07 Sat 02:19 AM 0.1 3 L 267 | 2015/03/07 Sat 08:30 AM 4.5 137 H 268 | 2015/03/07 Sat 02:38 PM -0.1 -3 L 269 | 2015/03/07 Sat 08:53 PM 4.5 137 H 270 | 2015/03/08 Sun 04:00 AM 0.1 3 L 271 | 2015/03/08 Sun 10:08 AM 4.3 131 H 272 | 2015/03/08 Sun 04:15 PM 0.0 0 L 273 | 2015/03/08 Sun 10:31 PM 4.5 137 H 274 | 2015/03/09 Mon 04:40 AM 0.1 3 L 275 | 2015/03/09 Mon 10:46 AM 4.2 128 H 276 | 2015/03/09 Mon 04:52 PM 0.0 0 L 277 | 2015/03/09 Mon 11:10 PM 4.5 137 H 278 | 2015/03/10 Tue 05:21 AM 0.2 6 L 279 | 2015/03/10 Tue 11:26 AM 4.0 122 H 280 | 2015/03/10 Tue 05:31 PM 0.2 6 L 281 | 2015/03/10 Tue 11:51 PM 4.4 134 H 282 | 2015/03/11 Wed 06:05 AM 0.3 9 L 283 | 2015/03/11 Wed 12:10 PM 3.9 119 H 284 | 2015/03/11 Wed 06:13 PM 0.3 9 L 285 | 2015/03/12 Thu 12:38 AM 4.4 134 H 286 | 2015/03/12 Thu 06:55 AM 0.4 12 L 287 | 2015/03/12 Thu 01:02 PM 3.7 113 H 288 | 2015/03/12 Thu 07:03 PM 0.4 12 L 289 | 2015/03/13 Fri 01:33 AM 4.4 134 H 290 | 2015/03/13 Fri 07:54 AM 0.5 15 L 291 | 2015/03/13 Fri 02:03 PM 3.7 113 H 292 | 2015/03/13 Fri 08:03 PM 0.4 12 L 293 | 2015/03/14 Sat 02:33 AM 4.4 134 H 294 | 2015/03/14 Sat 08:56 AM 0.4 12 L 295 | 2015/03/14 Sat 03:06 PM 3.8 116 H 296 | 2015/03/14 Sat 09:08 PM 0.4 12 L 297 | 2015/03/15 Sun 03:34 AM 4.5 137 H 298 | 2015/03/15 Sun 09:57 AM 0.2 6 L 299 | 2015/03/15 Sun 04:08 PM 4.0 122 H 300 | 2015/03/15 Sun 10:12 PM 0.2 6 L 301 | 2015/03/16 Mon 04:35 AM 4.7 143 H 302 | 2015/03/16 Mon 10:57 AM 0.0 0 L 303 | 2015/03/16 Mon 05:10 PM 4.3 131 H 304 | 2015/03/16 Mon 11:14 PM 0.0 0 L 305 | 2015/03/17 Tue 05:35 AM 5.0 152 H 306 | 2015/03/17 Tue 11:53 AM -0.4 -12 L 307 | 2015/03/17 Tue 06:08 PM 4.7 143 H 308 | 2015/03/18 Wed 12:13 AM -0.3 -9 L 309 | 2015/03/18 Wed 06:32 AM 5.2 158 H 310 | 2015/03/18 Wed 12:46 PM -0.6 -18 L 311 | 2015/03/18 Wed 07:02 PM 5.1 155 H 312 | 2015/03/19 Thu 01:08 AM -0.6 -18 L 313 | 2015/03/19 Thu 07:25 AM 5.4 165 H 314 | 2015/03/19 Thu 01:36 PM -0.9 -27 L 315 | 2015/03/19 Thu 07:53 PM 5.4 165 H 316 | 2015/03/20 Fri 02:01 AM -0.8 -24 L 317 | 2015/03/20 Fri 08:16 AM 5.4 165 H 318 | 2015/03/20 Fri 02:25 PM -1.0 -30 L 319 | 2015/03/20 Fri 08:43 PM 5.6 171 H 320 | 2015/03/21 Sat 02:54 AM -0.9 -27 L 321 | 2015/03/21 Sat 09:06 AM 5.4 165 H 322 | 2015/03/21 Sat 03:14 PM -0.9 -27 L 323 | 2015/03/21 Sat 09:33 PM 5.7 174 H 324 | 2015/03/22 Sun 03:46 AM -0.8 -24 L 325 | 2015/03/22 Sun 09:56 AM 5.2 158 H 326 | 2015/03/22 Sun 04:03 PM -0.8 -24 L 327 | 2015/03/22 Sun 10:22 PM 5.6 171 H 328 | 2015/03/23 Mon 04:37 AM -0.6 -18 L 329 | 2015/03/23 Mon 10:47 AM 4.9 149 H 330 | 2015/03/23 Mon 04:52 PM -0.6 -18 L 331 | 2015/03/23 Mon 11:13 PM 5.4 165 H 332 | 2015/03/24 Tue 05:28 AM -0.4 -12 L 333 | 2015/03/24 Tue 11:38 AM 4.6 140 H 334 | 2015/03/24 Tue 05:42 PM -0.2 -6 L 335 | 2015/03/25 Wed 12:04 AM 5.1 155 H 336 | 2015/03/25 Wed 06:21 AM -0.1 -3 L 337 | 2015/03/25 Wed 12:32 PM 4.2 128 H 338 | 2015/03/25 Wed 06:33 PM 0.1 3 L 339 | 2015/03/26 Thu 12:59 AM 4.8 146 H 340 | 2015/03/26 Thu 07:17 AM 0.2 6 L 341 | 2015/03/26 Thu 01:30 PM 4.0 122 H 342 | 2015/03/26 Thu 07:29 PM 0.5 15 L 343 | 2015/03/27 Fri 01:56 AM 4.5 137 H 344 | 2015/03/27 Fri 08:16 AM 0.5 15 L 345 | 2015/03/27 Fri 02:29 PM 3.8 116 H 346 | 2015/03/27 Fri 08:29 PM 0.7 21 L 347 | 2015/03/28 Sat 02:54 AM 4.3 131 H 348 | 2015/03/28 Sat 09:15 AM 0.6 18 L 349 | 2015/03/28 Sat 03:28 PM 3.7 113 H 350 | 2015/03/28 Sat 09:30 PM 0.8 24 L 351 | 2015/03/29 Sun 03:50 AM 4.2 128 H 352 | 2015/03/29 Sun 10:12 AM 0.6 18 L 353 | 2015/03/29 Sun 04:24 PM 3.8 116 H 354 | 2015/03/29 Sun 10:27 PM 0.8 24 L 355 | 2015/03/30 Mon 04:44 AM 4.1 125 H 356 | 2015/03/30 Mon 11:04 AM 0.6 18 L 357 | 2015/03/30 Mon 05:17 PM 3.9 119 H 358 | 2015/03/30 Mon 11:21 PM 0.7 21 L 359 | 2015/03/31 Tue 05:36 AM 4.2 128 H 360 | 2015/03/31 Tue 11:51 AM 0.5 15 L 361 | 2015/03/31 Tue 06:06 PM 4.1 125 H 362 | 2015/04/01 Wed 12:10 AM 0.6 18 L 363 | 2015/04/01 Wed 06:23 AM 4.3 131 H 364 | 2015/04/01 Wed 12:33 PM 0.3 9 L 365 | 2015/04/01 Wed 06:49 PM 4.3 131 H 366 | 2015/04/02 Thu 12:53 AM 0.4 12 L 367 | 2015/04/02 Thu 07:05 AM 4.4 134 H 368 | 2015/04/02 Thu 01:12 PM 0.2 6 L 369 | 2015/04/02 Thu 07:29 PM 4.5 137 H 370 | 2015/04/03 Fri 01:34 AM 0.3 9 L 371 | 2015/04/03 Fri 07:45 AM 4.4 134 H 372 | 2015/04/03 Fri 01:49 PM 0.1 3 L 373 | 2015/04/03 Fri 08:07 PM 4.7 143 H 374 | 2015/04/04 Sat 02:14 AM 0.2 6 L 375 | 2015/04/04 Sat 08:24 AM 4.5 137 H 376 | 2015/04/04 Sat 02:27 PM 0.1 3 L 377 | 2015/04/04 Sat 08:44 PM 4.8 146 H 378 | 2015/04/05 Sun 02:54 AM 0.1 3 L 379 | 2015/04/05 Sun 09:03 AM 4.4 134 H 380 | 2015/04/05 Sun 03:05 PM 0.1 3 L 381 | 2015/04/05 Sun 09:22 PM 4.9 149 H 382 | 2015/04/06 Mon 03:35 AM 0.1 3 L 383 | 2015/04/06 Mon 09:42 AM 4.4 134 H 384 | 2015/04/06 Mon 03:43 PM 0.1 3 L 385 | 2015/04/06 Mon 10:00 PM 4.9 149 H 386 | 2015/04/07 Tue 04:16 AM 0.1 3 L 387 | 2015/04/07 Tue 10:22 AM 4.3 131 H 388 | 2015/04/07 Tue 04:22 PM 0.2 6 L 389 | 2015/04/07 Tue 10:40 PM 4.9 149 H 390 | 2015/04/08 Wed 04:58 AM 0.1 3 L 391 | 2015/04/08 Wed 11:04 AM 4.2 128 H 392 | 2015/04/08 Wed 05:03 PM 0.3 9 L 393 | 2015/04/08 Wed 11:22 PM 4.8 146 H 394 | 2015/04/09 Thu 05:43 AM 0.2 6 L 395 | 2015/04/09 Thu 11:50 AM 4.1 125 H 396 | 2015/04/09 Thu 05:47 PM 0.4 12 L 397 | 2015/04/10 Fri 12:09 AM 4.7 143 H 398 | 2015/04/10 Fri 06:32 AM 0.3 9 L 399 | 2015/04/10 Fri 12:43 PM 4.0 122 H 400 | 2015/04/10 Fri 06:40 PM 0.5 15 L 401 | 2015/04/11 Sat 01:05 AM 4.6 140 H 402 | 2015/04/11 Sat 07:29 AM 0.3 9 L 403 | 2015/04/11 Sat 01:44 PM 4.0 122 H 404 | 2015/04/11 Sat 07:42 PM 0.6 18 L 405 | 2015/04/12 Sun 02:07 AM 4.6 140 H 406 | 2015/04/12 Sun 08:30 AM 0.3 9 L 407 | 2015/04/12 Sun 02:47 PM 4.1 125 H 408 | 2015/04/12 Sun 08:48 PM 0.5 15 L 409 | 2015/04/13 Mon 03:09 AM 4.6 140 H 410 | 2015/04/13 Mon 09:31 AM 0.2 6 L 411 | 2015/04/13 Mon 03:48 PM 4.4 134 H 412 | 2015/04/13 Mon 09:54 PM 0.4 12 L 413 | 2015/04/14 Tue 04:11 AM 4.7 143 H 414 | 2015/04/14 Tue 10:30 AM 0.0 0 L 415 | 2015/04/14 Tue 04:49 PM 4.7 143 H 416 | 2015/04/14 Tue 10:57 PM 0.1 3 L 417 | 2015/04/15 Wed 05:12 AM 4.9 149 H 418 | 2015/04/15 Wed 11:26 AM -0.3 -9 L 419 | 2015/04/15 Wed 05:47 PM 5.0 152 H 420 | 2015/04/15 Wed 11:57 PM -0.2 -6 L 421 | 2015/04/16 Thu 06:10 AM 5.0 152 H 422 | 2015/04/16 Thu 12:20 PM -0.5 -15 L 423 | 2015/04/16 Thu 06:41 PM 5.4 165 H 424 | 2015/04/17 Fri 12:52 AM -0.4 -12 L 425 | 2015/04/17 Fri 07:04 AM 5.2 158 H 426 | 2015/04/17 Fri 01:10 PM -0.6 -18 L 427 | 2015/04/17 Fri 07:31 PM 5.7 174 H 428 | 2015/04/18 Sat 01:44 AM -0.6 -18 L 429 | 2015/04/18 Sat 07:55 AM 5.2 158 H 430 | 2015/04/18 Sat 01:59 PM -0.7 -21 L 431 | 2015/04/18 Sat 08:20 PM 5.8 177 H 432 | 2015/04/19 Sun 02:36 AM -0.7 -21 L 433 | 2015/04/19 Sun 08:45 AM 5.1 155 H 434 | 2015/04/19 Sun 02:48 PM -0.6 -18 L 435 | 2015/04/19 Sun 09:09 PM 5.8 177 H 436 | 2015/04/20 Mon 03:26 AM -0.6 -18 L 437 | 2015/04/20 Mon 09:35 AM 5.0 152 H 438 | 2015/04/20 Mon 03:37 PM -0.4 -12 L 439 | 2015/04/20 Mon 09:58 PM 5.7 174 H 440 | 2015/04/21 Tue 04:17 AM -0.5 -15 L 441 | 2015/04/21 Tue 10:25 AM 4.8 146 H 442 | 2015/04/21 Tue 04:26 PM -0.2 -6 L 443 | 2015/04/21 Tue 10:46 PM 5.5 168 H 444 | 2015/04/22 Wed 05:06 AM -0.3 -9 L 445 | 2015/04/22 Wed 11:15 AM 4.5 137 H 446 | 2015/04/22 Wed 05:15 PM 0.1 3 L 447 | 2015/04/22 Wed 11:35 PM 5.1 155 H 448 | 2015/04/23 Thu 05:55 AM 0.0 0 L 449 | 2015/04/23 Thu 12:07 PM 4.3 131 H 450 | 2015/04/23 Thu 06:05 PM 0.4 12 L 451 | 2015/04/24 Fri 12:27 AM 4.8 146 H 452 | 2015/04/24 Fri 06:47 AM 0.3 9 L 453 | 2015/04/24 Fri 01:02 PM 4.0 122 H 454 | 2015/04/24 Fri 06:58 PM 0.7 21 L 455 | 2015/04/25 Sat 01:21 AM 4.5 137 H 456 | 2015/04/25 Sat 07:41 AM 0.5 15 L 457 | 2015/04/25 Sat 02:00 PM 3.9 119 H 458 | 2015/04/25 Sat 07:57 PM 1.0 30 L 459 | 2015/04/26 Sun 02:17 AM 4.3 131 H 460 | 2015/04/26 Sun 08:37 AM 0.6 18 L 461 | 2015/04/26 Sun 02:56 PM 3.9 119 H 462 | 2015/04/26 Sun 08:56 PM 1.1 34 L 463 | 2015/04/27 Mon 03:12 AM 4.1 125 H 464 | 2015/04/27 Mon 09:30 AM 0.7 21 L 465 | 2015/04/27 Mon 03:50 PM 4.0 122 H 466 | 2015/04/27 Mon 09:54 PM 1.0 30 L 467 | 2015/04/28 Tue 04:05 AM 4.0 122 H 468 | 2015/04/28 Tue 10:21 AM 0.7 21 L 469 | 2015/04/28 Tue 04:41 PM 4.1 125 H 470 | 2015/04/28 Tue 10:48 PM 0.9 27 L 471 | 2015/04/29 Wed 04:56 AM 4.1 125 H 472 | 2015/04/29 Wed 11:08 AM 0.6 18 L 473 | 2015/04/29 Wed 05:30 PM 4.3 131 H 474 | 2015/04/29 Wed 11:39 PM 0.8 24 L 475 | 2015/04/30 Thu 05:46 AM 4.1 125 H 476 | 2015/04/30 Thu 11:53 AM 0.5 15 L 477 | 2015/04/30 Thu 06:15 PM 4.5 137 H 478 | 2015/05/01 Fri 12:24 AM 0.6 18 L 479 | 2015/05/01 Fri 06:32 AM 4.2 128 H 480 | 2015/05/01 Fri 12:34 PM 0.4 12 L 481 | 2015/05/01 Fri 06:56 PM 4.8 146 H 482 | 2015/05/02 Sat 01:07 AM 0.4 12 L 483 | 2015/05/02 Sat 07:15 AM 4.3 131 H 484 | 2015/05/02 Sat 01:14 PM 0.3 9 L 485 | 2015/05/02 Sat 07:36 PM 4.9 149 H 486 | 2015/05/03 Sun 01:48 AM 0.2 6 L 487 | 2015/05/03 Sun 07:55 AM 4.3 131 H 488 | 2015/05/03 Sun 01:53 PM 0.2 6 L 489 | 2015/05/03 Sun 08:14 PM 5.1 155 H 490 | 2015/05/04 Mon 02:29 AM 0.1 3 L 491 | 2015/05/04 Mon 08:36 AM 4.4 134 H 492 | 2015/05/04 Mon 02:32 PM 0.2 6 L 493 | 2015/05/04 Mon 08:53 PM 5.2 158 H 494 | 2015/05/05 Tue 03:11 AM 0.0 0 L 495 | 2015/05/05 Tue 09:18 AM 4.4 134 H 496 | 2015/05/05 Tue 03:13 PM 0.2 6 L 497 | 2015/05/05 Tue 09:33 PM 5.2 158 H 498 | 2015/05/06 Wed 03:55 AM 0.0 0 L 499 | 2015/05/06 Wed 10:01 AM 4.3 131 H 500 | 2015/05/06 Wed 03:56 PM 0.3 9 L 501 | 2015/05/06 Wed 10:15 PM 5.2 158 H 502 | 2015/05/07 Thu 04:39 AM 0.0 0 L 503 | 2015/05/07 Thu 10:46 AM 4.3 131 H 504 | 2015/05/07 Thu 04:42 PM 0.3 9 L 505 | 2015/05/07 Thu 11:00 PM 5.1 155 H 506 | 2015/05/08 Fri 05:25 AM 0.0 0 L 507 | 2015/05/08 Fri 11:35 AM 4.3 131 H 508 | 2015/05/08 Fri 05:30 PM 0.4 12 L 509 | 2015/05/08 Fri 11:49 PM 5.0 152 H 510 | 2015/05/09 Sat 06:14 AM 0.1 3 L 511 | 2015/05/09 Sat 12:29 PM 4.2 128 H 512 | 2015/05/09 Sat 06:25 PM 0.5 15 L 513 | 2015/05/10 Sun 12:45 AM 4.9 149 H 514 | 2015/05/10 Sun 07:09 AM 0.1 3 L 515 | 2015/05/10 Sun 01:29 PM 4.3 131 H 516 | 2015/05/10 Sun 07:27 PM 0.6 18 L 517 | 2015/05/11 Mon 01:46 AM 4.7 143 H 518 | 2015/05/11 Mon 08:07 AM 0.1 3 L 519 | 2015/05/11 Mon 02:30 PM 4.5 137 H 520 | 2015/05/11 Mon 08:33 PM 0.6 18 L 521 | 2015/05/12 Tue 02:48 AM 4.7 143 H 522 | 2015/05/12 Tue 09:06 AM 0.0 0 L 523 | 2015/05/12 Tue 03:30 PM 4.7 143 H 524 | 2015/05/12 Tue 09:38 PM 0.4 12 L 525 | 2015/05/13 Wed 03:49 AM 4.7 143 H 526 | 2015/05/13 Wed 10:04 AM -0.1 -3 L 527 | 2015/05/13 Wed 04:28 PM 5.0 152 H 528 | 2015/05/13 Wed 10:40 PM 0.2 6 L 529 | 2015/05/14 Thu 04:49 AM 4.7 143 H 530 | 2015/05/14 Thu 11:00 AM -0.2 -6 L 531 | 2015/05/14 Thu 05:25 PM 5.3 162 H 532 | 2015/05/14 Thu 11:40 PM 0.0 0 L 533 | 2015/05/15 Fri 05:48 AM 4.8 146 H 534 | 2015/05/15 Fri 11:55 AM -0.3 -9 L 535 | 2015/05/15 Fri 06:20 PM 5.5 168 H 536 | 2015/05/16 Sat 12:36 AM -0.2 -6 L 537 | 2015/05/16 Sat 06:43 AM 4.8 146 H 538 | 2015/05/16 Sat 12:46 PM -0.4 -12 L 539 | 2015/05/16 Sat 07:10 PM 5.7 174 H 540 | 2015/05/17 Sun 01:28 AM -0.4 -12 L 541 | 2015/05/17 Sun 07:35 AM 4.8 146 H 542 | 2015/05/17 Sun 01:35 PM -0.4 -12 L 543 | 2015/05/17 Sun 07:59 PM 5.8 177 H 544 | 2015/05/18 Mon 02:17 AM -0.4 -12 L 545 | 2015/05/18 Mon 08:25 AM 4.8 146 H 546 | 2015/05/18 Mon 02:23 PM -0.3 -9 L 547 | 2015/05/18 Mon 08:46 PM 5.8 177 H 548 | 2015/05/19 Tue 03:07 AM -0.4 -12 L 549 | 2015/05/19 Tue 09:14 AM 4.7 143 H 550 | 2015/05/19 Tue 03:12 PM -0.1 -3 L 551 | 2015/05/19 Tue 09:33 PM 5.6 171 H 552 | 2015/05/20 Wed 03:55 AM -0.3 -9 L 553 | 2015/05/20 Wed 10:03 AM 4.6 140 H 554 | 2015/05/20 Wed 04:00 PM 0.1 3 L 555 | 2015/05/20 Wed 10:20 PM 5.4 165 H 556 | 2015/05/21 Thu 04:42 AM -0.2 -6 L 557 | 2015/05/21 Thu 10:52 AM 4.4 134 H 558 | 2015/05/21 Thu 04:48 PM 0.3 9 L 559 | 2015/05/21 Thu 11:07 PM 5.1 155 H 560 | 2015/05/22 Fri 05:29 AM 0.0 0 L 561 | 2015/05/22 Fri 11:41 AM 4.2 128 H 562 | 2015/05/22 Fri 05:36 PM 0.6 18 L 563 | 2015/05/22 Fri 11:54 PM 4.8 146 H 564 | 2015/05/23 Sat 06:15 AM 0.2 6 L 565 | 2015/05/23 Sat 12:32 PM 4.1 125 H 566 | 2015/05/23 Sat 06:26 PM 0.8 24 L 567 | 2015/05/24 Sun 12:44 AM 4.5 137 H 568 | 2015/05/24 Sun 07:04 AM 0.4 12 L 569 | 2015/05/24 Sun 01:26 PM 4.0 122 H 570 | 2015/05/24 Sun 07:21 PM 1.0 30 L 571 | 2015/05/25 Mon 01:37 AM 4.3 131 H 572 | 2015/05/25 Mon 07:55 AM 0.6 18 L 573 | 2015/05/25 Mon 02:20 PM 4.0 122 H 574 | 2015/05/25 Mon 08:18 PM 1.1 34 L 575 | 2015/05/26 Tue 02:30 AM 4.1 125 H 576 | 2015/05/26 Tue 08:46 AM 0.6 18 L 577 | 2015/05/26 Tue 03:11 PM 4.1 125 H 578 | 2015/05/26 Tue 09:15 PM 1.1 34 L 579 | 2015/05/27 Wed 03:22 AM 4.0 122 H 580 | 2015/05/27 Wed 09:35 AM 0.6 18 L 581 | 2015/05/27 Wed 04:01 PM 4.3 131 H 582 | 2015/05/27 Wed 10:10 PM 1.1 34 L 583 | 2015/05/28 Thu 04:14 AM 3.9 119 H 584 | 2015/05/28 Thu 10:23 AM 0.6 18 L 585 | 2015/05/28 Thu 04:49 PM 4.4 134 H 586 | 2015/05/28 Thu 11:02 PM 0.9 27 L 587 | 2015/05/29 Fri 05:05 AM 3.9 119 H 588 | 2015/05/29 Fri 11:10 AM 0.5 15 L 589 | 2015/05/29 Fri 05:36 PM 4.6 140 H 590 | 2015/05/29 Fri 11:51 PM 0.7 21 L 591 | 2015/05/30 Sat 05:55 AM 4.0 122 H 592 | 2015/05/30 Sat 11:55 AM 0.4 12 L 593 | 2015/05/30 Sat 06:21 PM 4.9 149 H 594 | 2015/05/31 Sun 12:37 AM 0.5 15 L 595 | 2015/05/31 Sun 06:42 AM 4.1 125 H 596 | 2015/05/31 Sun 12:38 PM 0.3 9 L 597 | 2015/05/31 Sun 07:04 PM 5.1 155 H 598 | 2015/06/01 Mon 01:20 AM 0.3 9 L 599 | 2015/06/01 Mon 07:26 AM 4.2 128 H 600 | 2015/06/01 Mon 01:20 PM 0.2 6 L 601 | 2015/06/01 Mon 07:45 PM 5.3 162 H 602 | 2015/06/02 Tue 02:04 AM 0.1 3 L 603 | 2015/06/02 Tue 08:10 AM 4.3 131 H 604 | 2015/06/02 Tue 02:03 PM 0.2 6 L 605 | 2015/06/02 Tue 08:27 PM 5.4 165 H 606 | 2015/06/03 Wed 02:48 AM -0.1 -3 L 607 | 2015/06/03 Wed 08:54 AM 4.4 134 H 608 | 2015/06/03 Wed 02:48 PM 0.2 6 L 609 | 2015/06/03 Wed 09:10 PM 5.4 165 H 610 | 2015/06/04 Thu 03:34 AM -0.2 -6 L 611 | 2015/06/04 Thu 09:41 AM 4.4 134 H 612 | 2015/06/04 Thu 03:35 PM 0.2 6 L 613 | 2015/06/04 Thu 09:55 PM 5.4 165 H 614 | 2015/06/05 Fri 04:20 AM -0.2 -6 L 615 | 2015/06/05 Fri 10:29 AM 4.5 137 H 616 | 2015/06/05 Fri 04:25 PM 0.2 6 L 617 | 2015/06/05 Fri 10:43 PM 5.4 165 H 618 | 2015/06/06 Sat 05:08 AM -0.3 -9 L 619 | 2015/06/06 Sat 11:20 AM 4.5 137 H 620 | 2015/06/06 Sat 05:17 PM 0.3 9 L 621 | 2015/06/06 Sat 11:33 PM 5.2 158 H 622 | 2015/06/07 Sun 05:57 AM -0.2 -6 L 623 | 2015/06/07 Sun 12:14 PM 4.6 140 H 624 | 2015/06/07 Sun 06:12 PM 0.4 12 L 625 | 2015/06/08 Mon 12:28 AM 5.0 152 H 626 | 2015/06/08 Mon 06:49 AM -0.2 -6 L 627 | 2015/06/08 Mon 01:12 PM 4.6 140 H 628 | 2015/06/08 Mon 07:12 PM 0.5 15 L 629 | 2015/06/09 Tue 01:27 AM 4.8 146 H 630 | 2015/06/09 Tue 07:45 AM -0.1 -3 L 631 | 2015/06/09 Tue 02:12 PM 4.8 146 H 632 | 2015/06/09 Tue 08:17 PM 0.5 15 L 633 | 2015/06/10 Wed 02:28 AM 4.6 140 H 634 | 2015/06/10 Wed 08:43 AM -0.1 -3 L 635 | 2015/06/10 Wed 03:11 PM 4.9 149 H 636 | 2015/06/10 Wed 09:21 PM 0.5 15 L 637 | 2015/06/11 Thu 03:28 AM 4.5 137 H 638 | 2015/06/11 Thu 09:40 AM -0.1 -3 L 639 | 2015/06/11 Thu 04:08 PM 5.1 155 H 640 | 2015/06/11 Thu 10:24 PM 0.3 9 L 641 | 2015/06/12 Fri 04:28 AM 4.4 134 H 642 | 2015/06/12 Fri 10:36 AM -0.1 -3 L 643 | 2015/06/12 Fri 05:05 PM 5.3 162 H 644 | 2015/06/12 Fri 11:24 PM 0.2 6 L 645 | 2015/06/13 Sat 05:27 AM 4.4 134 H 646 | 2015/06/13 Sat 11:31 AM -0.1 -3 L 647 | 2015/06/13 Sat 05:59 PM 5.4 165 H 648 | 2015/06/14 Sun 12:19 AM 0.0 0 L 649 | 2015/06/14 Sun 06:24 AM 4.5 137 H 650 | 2015/06/14 Sun 12:23 PM -0.1 -3 L 651 | 2015/06/14 Sun 06:51 PM 5.6 171 H 652 | 2015/06/15 Mon 01:11 AM -0.1 -3 L 653 | 2015/06/15 Mon 07:16 AM 4.5 137 H 654 | 2015/06/15 Mon 01:13 PM -0.1 -3 L 655 | 2015/06/15 Mon 07:39 PM 5.6 171 H 656 | 2015/06/16 Tue 01:59 AM -0.2 -6 L 657 | 2015/06/16 Tue 08:05 AM 4.5 137 H 658 | 2015/06/16 Tue 02:00 PM 0.0 0 L 659 | 2015/06/16 Tue 08:25 PM 5.6 171 H 660 | 2015/06/17 Wed 02:46 AM -0.2 -6 L 661 | 2015/06/17 Wed 08:53 AM 4.5 137 H 662 | 2015/06/17 Wed 02:48 PM 0.1 3 L 663 | 2015/06/17 Wed 09:10 PM 5.4 165 H 664 | 2015/06/18 Thu 03:32 AM -0.1 -3 L 665 | 2015/06/18 Thu 09:40 AM 4.4 134 H 666 | 2015/06/18 Thu 03:35 PM 0.3 9 L 667 | 2015/06/18 Thu 09:54 PM 5.3 162 H 668 | 2015/06/19 Fri 04:17 AM -0.1 -3 L 669 | 2015/06/19 Fri 10:26 AM 4.3 131 H 670 | 2015/06/19 Fri 04:21 PM 0.5 15 L 671 | 2015/06/19 Fri 10:38 PM 5.0 152 H 672 | 2015/06/20 Sat 05:00 AM 0.0 0 L 673 | 2015/06/20 Sat 11:13 AM 4.3 131 H 674 | 2015/06/20 Sat 05:07 PM 0.6 18 L 675 | 2015/06/20 Sat 11:22 PM 4.8 146 H 676 | 2015/06/21 Sun 05:43 AM 0.2 6 L 677 | 2015/06/21 Sun 11:59 AM 4.2 128 H 678 | 2015/06/21 Sun 05:54 PM 0.8 24 L 679 | 2015/06/22 Mon 12:07 AM 4.5 137 H 680 | 2015/06/22 Mon 06:26 AM 0.3 9 L 681 | 2015/06/22 Mon 12:48 PM 4.2 128 H 682 | 2015/06/22 Mon 06:44 PM 1.0 30 L 683 | 2015/06/23 Tue 12:55 AM 4.3 131 H 684 | 2015/06/23 Tue 07:12 AM 0.5 15 L 685 | 2015/06/23 Tue 01:39 PM 4.2 128 H 686 | 2015/06/23 Tue 07:37 PM 1.1 34 L 687 | 2015/06/24 Wed 01:46 AM 4.1 125 H 688 | 2015/06/24 Wed 08:00 AM 0.6 18 L 689 | 2015/06/24 Wed 02:29 PM 4.2 128 H 690 | 2015/06/24 Wed 08:33 PM 1.1 34 L 691 | 2015/06/25 Thu 02:39 AM 3.9 119 H 692 | 2015/06/25 Thu 08:49 AM 0.6 18 L 693 | 2015/06/25 Thu 03:19 PM 4.3 131 H 694 | 2015/06/25 Thu 09:28 PM 1.1 34 L 695 | 2015/06/26 Fri 03:30 AM 3.8 116 H 696 | 2015/06/26 Fri 09:38 AM 0.6 18 L 697 | 2015/06/26 Fri 04:08 PM 4.5 137 H 698 | 2015/06/26 Fri 10:22 PM 1.0 30 L 699 | 2015/06/27 Sat 04:23 AM 3.8 116 H 700 | 2015/06/27 Sat 10:27 AM 0.6 18 L 701 | 2015/06/27 Sat 04:57 PM 4.7 143 H 702 | 2015/06/27 Sat 11:15 PM 0.8 24 L 703 | 2015/06/28 Sun 05:16 AM 3.9 119 H 704 | 2015/06/28 Sun 11:16 AM 0.5 15 L 705 | 2015/06/28 Sun 05:45 PM 4.9 149 H 706 | 2015/06/29 Mon 12:05 AM 0.5 15 L 707 | 2015/06/29 Mon 06:08 AM 4.0 122 H 708 | 2015/06/29 Mon 12:04 PM 0.4 12 L 709 | 2015/06/29 Mon 06:33 PM 5.1 155 H 710 | 2015/06/30 Tue 12:52 AM 0.2 6 L 711 | 2015/06/30 Tue 06:57 AM 4.2 128 H 712 | 2015/06/30 Tue 12:51 PM 0.2 6 L 713 | 2015/06/30 Tue 07:18 PM 5.4 165 H 714 | 2015/07/01 Wed 01:38 AM 0.0 0 L 715 | 2015/07/01 Wed 07:45 AM 4.4 134 H 716 | 2015/07/01 Wed 01:38 PM 0.1 3 L 717 | 2015/07/01 Wed 08:03 PM 5.5 168 H 718 | 2015/07/02 Thu 02:24 AM -0.2 -6 L 719 | 2015/07/02 Thu 08:32 AM 4.5 137 H 720 | 2015/07/02 Thu 02:27 PM 0.0 0 L 721 | 2015/07/02 Thu 08:49 PM 5.6 171 H 722 | 2015/07/03 Fri 03:12 AM -0.4 -12 L 723 | 2015/07/03 Fri 09:21 AM 4.7 143 H 724 | 2015/07/03 Fri 03:17 PM 0.0 0 L 725 | 2015/07/03 Fri 09:37 PM 5.6 171 H 726 | 2015/07/04 Sat 04:00 AM -0.5 -15 L 727 | 2015/07/04 Sat 10:11 AM 4.8 146 H 728 | 2015/07/04 Sat 04:09 PM 0.0 0 L 729 | 2015/07/04 Sat 10:26 PM 5.5 168 H 730 | 2015/07/05 Sun 04:48 AM -0.5 -15 L 731 | 2015/07/05 Sun 11:02 AM 4.9 149 H 732 | 2015/07/05 Sun 05:03 PM 0.0 0 L 733 | 2015/07/05 Sun 11:17 PM 5.4 165 H 734 | 2015/07/06 Mon 05:37 AM -0.5 -15 L 735 | 2015/07/06 Mon 11:56 AM 4.9 149 H 736 | 2015/07/06 Mon 05:58 PM 0.2 6 L 737 | 2015/07/07 Tue 12:11 AM 5.1 155 H 738 | 2015/07/07 Tue 06:28 AM -0.4 -12 L 739 | 2015/07/07 Tue 12:52 PM 5.0 152 H 740 | 2015/07/07 Tue 06:57 PM 0.3 9 L 741 | 2015/07/08 Wed 01:08 AM 4.8 146 H 742 | 2015/07/08 Wed 07:23 AM -0.2 -6 L 743 | 2015/07/08 Wed 01:51 PM 5.0 152 H 744 | 2015/07/08 Wed 07:59 PM 0.4 12 L 745 | 2015/07/09 Thu 02:08 AM 4.6 140 H 746 | 2015/07/09 Thu 08:20 AM -0.1 -3 L 747 | 2015/07/09 Thu 02:50 PM 5.1 155 H 748 | 2015/07/09 Thu 09:03 PM 0.5 15 L 749 | 2015/07/10 Fri 03:09 AM 4.4 134 H 750 | 2015/07/10 Fri 09:18 AM 0.1 3 L 751 | 2015/07/10 Fri 03:47 PM 5.1 155 H 752 | 2015/07/10 Fri 10:06 PM 0.5 15 L 753 | 2015/07/11 Sat 04:09 AM 4.2 128 H 754 | 2015/07/11 Sat 10:15 AM 0.1 3 L 755 | 2015/07/11 Sat 04:44 PM 5.2 158 H 756 | 2015/07/11 Sat 11:06 PM 0.4 12 L 757 | 2015/07/12 Sun 05:08 AM 4.2 128 H 758 | 2015/07/12 Sun 11:11 AM 0.2 6 L 759 | 2015/07/12 Sun 05:40 PM 5.2 158 H 760 | 2015/07/13 Mon 12:03 AM 0.3 9 L 761 | 2015/07/13 Mon 06:06 AM 4.2 128 H 762 | 2015/07/13 Mon 12:04 PM 0.2 6 L 763 | 2015/07/13 Mon 06:32 PM 5.3 162 H 764 | 2015/07/14 Tue 12:54 AM 0.2 6 L 765 | 2015/07/14 Tue 06:58 AM 4.3 131 H 766 | 2015/07/14 Tue 12:54 PM 0.2 6 L 767 | 2015/07/14 Tue 07:19 PM 5.3 162 H 768 | 2015/07/15 Wed 01:40 AM 0.1 3 L 769 | 2015/07/15 Wed 07:46 AM 4.3 131 H 770 | 2015/07/15 Wed 01:40 PM 0.3 9 L 771 | 2015/07/15 Wed 08:03 PM 5.3 162 H 772 | 2015/07/16 Thu 02:24 AM 0.0 0 L 773 | 2015/07/16 Thu 08:31 AM 4.4 134 H 774 | 2015/07/16 Thu 02:25 PM 0.3 9 L 775 | 2015/07/16 Thu 08:46 PM 5.2 158 H 776 | 2015/07/17 Fri 03:06 AM 0.0 0 L 777 | 2015/07/17 Fri 09:15 AM 4.4 134 H 778 | 2015/07/17 Fri 03:10 PM 0.4 12 L 779 | 2015/07/17 Fri 09:28 PM 5.1 155 H 780 | 2015/07/18 Sat 03:48 AM 0.0 0 L 781 | 2015/07/18 Sat 09:58 AM 4.4 134 H 782 | 2015/07/18 Sat 03:55 PM 0.5 15 L 783 | 2015/07/18 Sat 10:10 PM 5.0 152 H 784 | 2015/07/19 Sun 04:29 AM 0.1 3 L 785 | 2015/07/19 Sun 10:41 AM 4.4 134 H 786 | 2015/07/19 Sun 04:39 PM 0.6 18 L 787 | 2015/07/19 Sun 10:51 PM 4.8 146 H 788 | 2015/07/20 Mon 05:08 AM 0.2 6 L 789 | 2015/07/20 Mon 11:24 AM 4.4 134 H 790 | 2015/07/20 Mon 05:22 PM 0.7 21 L 791 | 2015/07/20 Mon 11:33 PM 4.5 137 H 792 | 2015/07/21 Tue 05:48 AM 0.3 9 L 793 | 2015/07/21 Tue 12:08 PM 4.3 131 H 794 | 2015/07/21 Tue 06:08 PM 0.9 27 L 795 | 2015/07/22 Wed 12:16 AM 4.3 131 H 796 | 2015/07/22 Wed 06:30 AM 0.5 15 L 797 | 2015/07/22 Wed 12:55 PM 4.3 131 H 798 | 2015/07/22 Wed 06:56 PM 1.0 30 L 799 | 2015/07/23 Thu 01:04 AM 4.1 125 H 800 | 2015/07/23 Thu 07:15 AM 0.6 18 L 801 | 2015/07/23 Thu 01:45 PM 4.3 131 H 802 | 2015/07/23 Thu 07:50 PM 1.1 34 L 803 | 2015/07/24 Fri 01:55 AM 3.9 119 H 804 | 2015/07/24 Fri 08:03 AM 0.7 21 L 805 | 2015/07/24 Fri 02:35 PM 4.4 134 H 806 | 2015/07/24 Fri 08:46 PM 1.1 34 L 807 | 2015/07/25 Sat 02:49 AM 3.8 116 H 808 | 2015/07/25 Sat 08:55 AM 0.7 21 L 809 | 2015/07/25 Sat 03:26 PM 4.5 137 H 810 | 2015/07/25 Sat 09:42 PM 1.0 30 L 811 | 2015/07/26 Sun 03:44 AM 3.8 116 H 812 | 2015/07/26 Sun 09:47 AM 0.7 21 L 813 | 2015/07/26 Sun 04:18 PM 4.7 143 H 814 | 2015/07/26 Sun 10:38 PM 0.8 24 L 815 | 2015/07/27 Mon 04:40 AM 3.9 119 H 816 | 2015/07/27 Mon 10:40 AM 0.6 18 L 817 | 2015/07/27 Mon 05:10 PM 4.9 149 H 818 | 2015/07/27 Mon 11:32 PM 0.5 15 L 819 | 2015/07/28 Tue 05:36 AM 4.0 122 H 820 | 2015/07/28 Tue 11:34 AM 0.4 12 L 821 | 2015/07/28 Tue 06:02 PM 5.2 158 H 822 | 2015/07/29 Wed 12:23 AM 0.2 6 L 823 | 2015/07/29 Wed 06:30 AM 4.3 131 H 824 | 2015/07/29 Wed 12:26 PM 0.2 6 L 825 | 2015/07/29 Wed 06:52 PM 5.4 165 H 826 | 2015/07/30 Thu 01:12 AM -0.1 -3 L 827 | 2015/07/30 Thu 07:20 AM 4.6 140 H 828 | 2015/07/30 Thu 01:17 PM 0.0 0 L 829 | 2015/07/30 Thu 07:41 PM 5.6 171 H 830 | 2015/07/31 Fri 01:59 AM -0.3 -9 L 831 | 2015/07/31 Fri 08:10 AM 4.9 149 H 832 | 2015/07/31 Fri 02:08 PM -0.2 -6 L 833 | 2015/07/31 Fri 08:29 PM 5.8 177 H 834 | 2015/08/01 Sat 02:47 AM -0.5 -15 L 835 | 2015/08/01 Sat 08:59 AM 5.1 155 H 836 | 2015/08/01 Sat 03:00 PM -0.3 -9 L 837 | 2015/08/01 Sat 09:18 PM 5.8 177 H 838 | 2015/08/02 Sun 03:36 AM -0.6 -18 L 839 | 2015/08/02 Sun 09:50 AM 5.3 162 H 840 | 2015/08/02 Sun 03:53 PM -0.3 -9 L 841 | 2015/08/02 Sun 10:08 PM 5.7 174 H 842 | 2015/08/03 Mon 04:25 AM -0.6 -18 L 843 | 2015/08/03 Mon 10:41 AM 5.3 162 H 844 | 2015/08/03 Mon 04:47 PM -0.2 -6 L 845 | 2015/08/03 Mon 10:59 PM 5.5 168 H 846 | 2015/08/04 Tue 05:15 AM -0.6 -18 L 847 | 2015/08/04 Tue 11:34 AM 5.3 162 H 848 | 2015/08/04 Tue 05:41 PM -0.1 -3 L 849 | 2015/08/04 Tue 11:52 PM 5.2 158 H 850 | 2015/08/05 Wed 06:05 AM -0.4 -12 L 851 | 2015/08/05 Wed 12:29 PM 5.3 162 H 852 | 2015/08/05 Wed 06:38 PM 0.2 6 L 853 | 2015/08/06 Thu 12:49 AM 4.8 146 H 854 | 2015/08/06 Thu 06:59 AM -0.1 -3 L 855 | 2015/08/06 Thu 01:27 PM 5.2 158 H 856 | 2015/08/06 Thu 07:40 PM 0.4 12 L 857 | 2015/08/07 Fri 01:49 AM 4.5 137 H 858 | 2015/08/07 Fri 07:56 AM 0.1 3 L 859 | 2015/08/07 Fri 02:27 PM 5.1 155 H 860 | 2015/08/07 Fri 08:43 PM 0.5 15 L 861 | 2015/08/08 Sat 02:50 AM 4.3 131 H 862 | 2015/08/08 Sat 08:56 AM 0.3 9 L 863 | 2015/08/08 Sat 03:26 PM 5.0 152 H 864 | 2015/08/08 Sat 09:46 PM 0.6 18 L 865 | 2015/08/09 Sun 03:50 AM 4.1 125 H 866 | 2015/08/09 Sun 09:55 AM 0.4 12 L 867 | 2015/08/09 Sun 04:23 PM 5.0 152 H 868 | 2015/08/09 Sun 10:47 PM 0.6 18 L 869 | 2015/08/10 Mon 04:50 AM 4.1 125 H 870 | 2015/08/10 Mon 10:52 AM 0.5 15 L 871 | 2015/08/10 Mon 05:20 PM 5.0 152 H 872 | 2015/08/10 Mon 11:44 PM 0.5 15 L 873 | 2015/08/11 Tue 05:47 AM 4.1 125 H 874 | 2015/08/11 Tue 11:47 AM 0.5 15 L 875 | 2015/08/11 Tue 06:12 PM 5.0 152 H 876 | 2015/08/12 Wed 12:33 AM 0.4 12 L 877 | 2015/08/12 Wed 06:39 AM 4.2 128 H 878 | 2015/08/12 Wed 12:36 PM 0.5 15 L 879 | 2015/08/12 Wed 06:59 PM 5.1 155 H 880 | 2015/08/13 Thu 01:17 AM 0.3 9 L 881 | 2015/08/13 Thu 07:25 AM 4.4 134 H 882 | 2015/08/13 Thu 01:21 PM 0.4 12 L 883 | 2015/08/13 Thu 07:41 PM 5.1 155 H 884 | 2015/08/14 Fri 01:58 AM 0.2 6 L 885 | 2015/08/14 Fri 08:07 AM 4.5 137 H 886 | 2015/08/14 Fri 02:04 PM 0.4 12 L 887 | 2015/08/14 Fri 08:22 PM 5.1 155 H 888 | 2015/08/15 Sat 02:37 AM 0.2 6 L 889 | 2015/08/15 Sat 08:48 AM 4.6 140 H 890 | 2015/08/15 Sat 02:46 PM 0.4 12 L 891 | 2015/08/15 Sat 09:02 PM 5.0 152 H 892 | 2015/08/16 Sun 03:16 AM 0.2 6 L 893 | 2015/08/16 Sun 09:28 AM 4.6 140 H 894 | 2015/08/16 Sun 03:28 PM 0.5 15 L 895 | 2015/08/16 Sun 09:41 PM 4.9 149 H 896 | 2015/08/17 Mon 03:55 AM 0.2 6 L 897 | 2015/08/17 Mon 10:08 AM 4.6 140 H 898 | 2015/08/17 Mon 04:10 PM 0.5 15 L 899 | 2015/08/17 Mon 10:20 PM 4.7 143 H 900 | 2015/08/18 Tue 04:33 AM 0.3 9 L 901 | 2015/08/18 Tue 10:48 AM 4.6 140 H 902 | 2015/08/18 Tue 04:52 PM 0.6 18 L 903 | 2015/08/18 Tue 11:00 PM 4.5 137 H 904 | 2015/08/19 Wed 05:11 AM 0.4 12 L 905 | 2015/08/19 Wed 11:29 AM 4.6 140 H 906 | 2015/08/19 Wed 05:34 PM 0.8 24 L 907 | 2015/08/19 Wed 11:41 PM 4.3 131 H 908 | 2015/08/20 Thu 05:50 AM 0.5 15 L 909 | 2015/08/20 Thu 12:12 PM 4.5 137 H 910 | 2015/08/20 Thu 06:19 PM 0.9 27 L 911 | 2015/08/21 Fri 12:25 AM 4.1 125 H 912 | 2015/08/21 Fri 06:32 AM 0.7 21 L 913 | 2015/08/21 Fri 12:59 PM 4.5 137 H 914 | 2015/08/21 Fri 07:10 PM 1.0 30 L 915 | 2015/08/22 Sat 01:16 AM 3.9 119 H 916 | 2015/08/22 Sat 07:20 AM 0.8 24 L 917 | 2015/08/22 Sat 01:51 PM 4.5 137 H 918 | 2015/08/22 Sat 08:06 PM 1.0 30 L 919 | 2015/08/23 Sun 02:12 AM 3.9 119 H 920 | 2015/08/23 Sun 08:14 AM 0.8 24 L 921 | 2015/08/23 Sun 02:46 PM 4.5 137 H 922 | 2015/08/23 Sun 09:05 PM 1.0 30 L 923 | 2015/08/24 Mon 03:10 AM 3.9 119 H 924 | 2015/08/24 Mon 09:12 AM 0.8 24 L 925 | 2015/08/24 Mon 03:41 PM 4.7 143 H 926 | 2015/08/24 Mon 10:03 PM 0.8 24 L 927 | 2015/08/25 Tue 04:09 AM 4.0 122 H 928 | 2015/08/25 Tue 10:11 AM 0.7 21 L 929 | 2015/08/25 Tue 04:38 PM 4.9 149 H 930 | 2015/08/25 Tue 11:00 PM 0.5 15 L 931 | 2015/08/26 Wed 05:07 AM 4.2 128 H 932 | 2015/08/26 Wed 11:09 AM 0.4 12 L 933 | 2015/08/26 Wed 05:34 PM 5.2 158 H 934 | 2015/08/26 Wed 11:54 PM 0.2 6 L 935 | 2015/08/27 Thu 06:04 AM 4.6 140 H 936 | 2015/08/27 Thu 12:05 PM 0.1 3 L 937 | 2015/08/27 Thu 06:28 PM 5.4 165 H 938 | 2015/08/28 Fri 12:44 AM -0.1 -3 L 939 | 2015/08/28 Fri 06:57 AM 4.9 149 H 940 | 2015/08/28 Fri 12:58 PM -0.1 -3 L 941 | 2015/08/28 Fri 07:19 PM 5.7 174 H 942 | 2015/08/29 Sat 01:33 AM -0.4 -12 L 943 | 2015/08/29 Sat 07:47 AM 5.3 162 H 944 | 2015/08/29 Sat 01:51 PM -0.4 -12 L 945 | 2015/08/29 Sat 08:08 PM 5.8 177 H 946 | 2015/08/30 Sun 02:22 AM -0.6 -18 L 947 | 2015/08/30 Sun 08:37 AM 5.6 171 H 948 | 2015/08/30 Sun 02:43 PM -0.5 -15 L 949 | 2015/08/30 Sun 08:58 PM 5.8 177 H 950 | 2015/08/31 Mon 03:11 AM -0.7 -21 L 951 | 2015/08/31 Mon 09:27 AM 5.7 174 H 952 | 2015/08/31 Mon 03:36 PM -0.5 -15 L 953 | 2015/08/31 Mon 09:49 PM 5.7 174 H 954 | 2015/09/01 Tue 04:00 AM -0.7 -21 L 955 | 2015/09/01 Tue 10:18 AM 5.8 177 H 956 | 2015/09/01 Tue 04:29 PM -0.4 -12 L 957 | 2015/09/01 Tue 10:40 PM 5.4 165 H 958 | 2015/09/02 Wed 04:50 AM -0.5 -15 L 959 | 2015/09/02 Wed 11:10 AM 5.7 174 H 960 | 2015/09/02 Wed 05:23 PM -0.2 -6 L 961 | 2015/09/02 Wed 11:33 PM 5.1 155 H 962 | 2015/09/03 Thu 05:41 AM -0.3 -9 L 963 | 2015/09/03 Thu 12:04 PM 5.5 168 H 964 | 2015/09/03 Thu 06:18 PM 0.1 3 L 965 | 2015/09/04 Fri 12:29 AM 4.8 146 H 966 | 2015/09/04 Fri 06:34 AM 0.1 3 L 967 | 2015/09/04 Fri 01:01 PM 5.2 158 H 968 | 2015/09/04 Fri 07:17 PM 0.4 12 L 969 | 2015/09/05 Sat 01:29 AM 4.4 134 H 970 | 2015/09/05 Sat 07:32 AM 0.4 12 L 971 | 2015/09/05 Sat 02:01 PM 5.0 152 H 972 | 2015/09/05 Sat 08:20 PM 0.6 18 L 973 | 2015/09/06 Sun 02:31 AM 4.2 128 H 974 | 2015/09/06 Sun 08:33 AM 0.6 18 L 975 | 2015/09/06 Sun 03:01 PM 4.9 149 H 976 | 2015/09/06 Sun 09:23 PM 0.7 21 L 977 | 2015/09/07 Mon 03:31 AM 4.1 125 H 978 | 2015/09/07 Mon 09:35 AM 0.8 24 L 979 | 2015/09/07 Mon 03:59 PM 4.7 143 H 980 | 2015/09/07 Mon 10:23 PM 0.7 21 L 981 | 2015/09/08 Tue 04:30 AM 4.1 125 H 982 | 2015/09/08 Tue 10:34 AM 0.8 24 L 983 | 2015/09/08 Tue 04:55 PM 4.7 143 H 984 | 2015/09/08 Tue 11:19 PM 0.7 21 L 985 | 2015/09/09 Wed 05:26 AM 4.2 128 H 986 | 2015/09/09 Wed 11:29 AM 0.8 24 L 987 | 2015/09/09 Wed 05:48 PM 4.7 143 H 988 | 2015/09/10 Thu 12:07 AM 0.6 18 L 989 | 2015/09/10 Thu 06:17 AM 4.3 131 H 990 | 2015/09/10 Thu 12:18 PM 0.7 21 L 991 | 2015/09/10 Thu 06:35 PM 4.8 146 H 992 | 2015/09/11 Fri 12:49 AM 0.5 15 L 993 | 2015/09/11 Fri 07:01 AM 4.5 137 H 994 | 2015/09/11 Fri 01:01 PM 0.6 18 L 995 | 2015/09/11 Fri 07:17 PM 4.8 146 H 996 | 2015/09/12 Sat 01:28 AM 0.4 12 L 997 | 2015/09/12 Sat 07:41 AM 4.6 140 H 998 | 2015/09/12 Sat 01:42 PM 0.5 15 L 999 | 2015/09/12 Sat 07:56 PM 4.9 149 H 1000 | 2015/09/13 Sun 02:05 AM 0.3 9 L 1001 | 2015/09/13 Sun 08:19 AM 4.8 146 H 1002 | 2015/09/13 Sun 02:22 PM 0.4 12 L 1003 | 2015/09/13 Sun 08:35 PM 4.8 146 H 1004 | 2015/09/14 Mon 02:42 AM 0.3 9 L 1005 | 2015/09/14 Mon 08:57 AM 4.8 146 H 1006 | 2015/09/14 Mon 03:03 PM 0.4 12 L 1007 | 2015/09/14 Mon 09:13 PM 4.8 146 H 1008 | 2015/09/15 Tue 03:20 AM 0.3 9 L 1009 | 2015/09/15 Tue 09:35 AM 4.9 149 H 1010 | 2015/09/15 Tue 03:43 PM 0.4 12 L 1011 | 2015/09/15 Tue 09:51 PM 4.6 140 H 1012 | 2015/09/16 Wed 03:57 AM 0.4 12 L 1013 | 2015/09/16 Wed 10:13 AM 4.8 146 H 1014 | 2015/09/16 Wed 04:24 PM 0.5 15 L 1015 | 2015/09/16 Wed 10:30 PM 4.5 137 H 1016 | 2015/09/17 Thu 04:35 AM 0.5 15 L 1017 | 2015/09/17 Thu 10:52 AM 4.8 146 H 1018 | 2015/09/17 Thu 05:05 PM 0.6 18 L 1019 | 2015/09/17 Thu 11:10 PM 4.3 131 H 1020 | 2015/09/18 Fri 05:14 AM 0.6 18 L 1021 | 2015/09/18 Fri 11:33 AM 4.7 143 H 1022 | 2015/09/18 Fri 05:48 PM 0.7 21 L 1023 | 2015/09/18 Fri 11:54 PM 4.1 125 H 1024 | 2015/09/19 Sat 05:55 AM 0.7 21 L 1025 | 2015/09/19 Sat 12:18 PM 4.6 140 H 1026 | 2015/09/19 Sat 06:36 PM 0.8 24 L 1027 | 2015/09/20 Sun 12:44 AM 4.0 122 H 1028 | 2015/09/20 Sun 06:42 AM 0.9 27 L 1029 | 2015/09/20 Sun 01:10 PM 4.6 140 H 1030 | 2015/09/20 Sun 07:31 PM 0.8 24 L 1031 | 2015/09/21 Mon 01:42 AM 3.9 119 H 1032 | 2015/09/21 Mon 07:40 AM 0.9 27 L 1033 | 2015/09/21 Mon 02:09 PM 4.6 140 H 1034 | 2015/09/21 Mon 08:31 PM 0.8 24 L 1035 | 2015/09/22 Tue 02:43 AM 4.0 122 H 1036 | 2015/09/22 Tue 08:43 AM 0.9 27 L 1037 | 2015/09/22 Tue 03:08 PM 4.7 143 H 1038 | 2015/09/22 Tue 09:31 PM 0.6 18 L 1039 | 2015/09/23 Wed 03:43 AM 4.2 128 H 1040 | 2015/09/23 Wed 09:46 AM 0.7 21 L 1041 | 2015/09/23 Wed 04:08 PM 4.8 146 H 1042 | 2015/09/23 Wed 10:29 PM 0.4 12 L 1043 | 2015/09/24 Thu 04:42 AM 4.5 137 H 1044 | 2015/09/24 Thu 10:47 AM 0.4 12 L 1045 | 2015/09/24 Thu 05:07 PM 5.1 155 H 1046 | 2015/09/24 Thu 11:24 PM 0.1 3 L 1047 | 2015/09/25 Fri 05:40 AM 4.9 149 H 1048 | 2015/09/25 Fri 11:46 AM 0.1 3 L 1049 | 2015/09/25 Fri 06:03 PM 5.3 162 H 1050 | 2015/09/26 Sat 12:17 AM -0.2 -6 L 1051 | 2015/09/26 Sat 06:34 AM 5.3 162 H 1052 | 2015/09/26 Sat 12:41 PM -0.2 -6 L 1053 | 2015/09/26 Sat 06:57 PM 5.5 168 H 1054 | 2015/09/27 Sun 01:07 AM -0.5 -15 L 1055 | 2015/09/27 Sun 07:25 AM 5.7 174 H 1056 | 2015/09/27 Sun 01:33 PM -0.5 -15 L 1057 | 2015/09/27 Sun 07:47 PM 5.6 171 H 1058 | 2015/09/28 Mon 01:56 AM -0.7 -21 L 1059 | 2015/09/28 Mon 08:14 AM 5.9 180 H 1060 | 2015/09/28 Mon 02:25 PM -0.6 -18 L 1061 | 2015/09/28 Mon 08:38 PM 5.6 171 H 1062 | 2015/09/29 Tue 02:45 AM -0.7 -21 L 1063 | 2015/09/29 Tue 09:04 AM 6.0 183 H 1064 | 2015/09/29 Tue 03:18 PM -0.6 -18 L 1065 | 2015/09/29 Tue 09:28 PM 5.5 168 H 1066 | 2015/09/30 Wed 03:35 AM -0.6 -18 L 1067 | 2015/09/30 Wed 09:54 AM 6.0 183 H 1068 | 2015/09/30 Wed 04:11 PM -0.5 -15 L 1069 | 2015/09/30 Wed 10:20 PM 5.3 162 H 1070 | 2015/10/01 Thu 04:25 AM -0.4 -12 L 1071 | 2015/10/01 Thu 10:45 AM 5.8 177 H 1072 | 2015/10/01 Thu 05:03 PM -0.3 -9 L 1073 | 2015/10/01 Thu 11:13 PM 5.0 152 H 1074 | 2015/10/02 Fri 05:16 AM -0.1 -3 L 1075 | 2015/10/02 Fri 11:38 AM 5.5 168 H 1076 | 2015/10/02 Fri 05:57 PM 0.0 0 L 1077 | 2015/10/03 Sat 12:08 AM 4.6 140 H 1078 | 2015/10/03 Sat 06:09 AM 0.2 6 L 1079 | 2015/10/03 Sat 12:33 PM 5.2 158 H 1080 | 2015/10/03 Sat 06:53 PM 0.3 9 L 1081 | 2015/10/04 Sun 01:07 AM 4.3 131 H 1082 | 2015/10/04 Sun 07:06 AM 0.6 18 L 1083 | 2015/10/04 Sun 01:32 PM 4.9 149 H 1084 | 2015/10/04 Sun 07:53 PM 0.5 15 L 1085 | 2015/10/05 Mon 02:08 AM 4.2 128 H 1086 | 2015/10/05 Mon 08:08 AM 0.8 24 L 1087 | 2015/10/05 Mon 02:32 PM 4.6 140 H 1088 | 2015/10/05 Mon 08:54 PM 0.7 21 L 1089 | 2015/10/06 Tue 03:08 AM 4.1 125 H 1090 | 2015/10/06 Tue 09:10 AM 1.0 30 L 1091 | 2015/10/06 Tue 03:30 PM 4.5 137 H 1092 | 2015/10/06 Tue 09:52 PM 0.7 21 L 1093 | 2015/10/07 Wed 04:05 AM 4.1 125 H 1094 | 2015/10/07 Wed 10:10 AM 1.0 30 L 1095 | 2015/10/07 Wed 04:25 PM 4.4 134 H 1096 | 2015/10/07 Wed 10:45 PM 0.7 21 L 1097 | 2015/10/08 Thu 04:59 AM 4.2 128 H 1098 | 2015/10/08 Thu 11:05 AM 0.9 27 L 1099 | 2015/10/08 Thu 05:17 PM 4.4 134 H 1100 | 2015/10/08 Thu 11:32 PM 0.6 18 L 1101 | 2015/10/09 Fri 05:48 AM 4.4 134 H 1102 | 2015/10/09 Fri 11:54 AM 0.8 24 L 1103 | 2015/10/09 Fri 06:05 PM 4.4 134 H 1104 | 2015/10/10 Sat 12:15 AM 0.5 15 L 1105 | 2015/10/10 Sat 06:32 AM 4.6 140 H 1106 | 2015/10/10 Sat 12:38 PM 0.6 18 L 1107 | 2015/10/10 Sat 06:48 PM 4.5 137 H 1108 | 2015/10/11 Sun 12:54 AM 0.4 12 L 1109 | 2015/10/11 Sun 07:12 AM 4.8 146 H 1110 | 2015/10/11 Sun 01:19 PM 0.5 15 L 1111 | 2015/10/11 Sun 07:28 PM 4.6 140 H 1112 | 2015/10/12 Mon 01:31 AM 0.3 9 L 1113 | 2015/10/12 Mon 07:50 AM 4.9 149 H 1114 | 2015/10/12 Mon 01:58 PM 0.4 12 L 1115 | 2015/10/12 Mon 08:07 PM 4.6 140 H 1116 | 2015/10/13 Tue 02:08 AM 0.3 9 L 1117 | 2015/10/13 Tue 08:27 AM 5.0 152 H 1118 | 2015/10/13 Tue 02:38 PM 0.3 9 L 1119 | 2015/10/13 Tue 08:46 PM 4.5 137 H 1120 | 2015/10/14 Wed 02:46 AM 0.3 9 L 1121 | 2015/10/14 Wed 09:04 AM 5.0 152 H 1122 | 2015/10/14 Wed 03:18 PM 0.3 9 L 1123 | 2015/10/14 Wed 09:25 PM 4.4 134 H 1124 | 2015/10/15 Thu 03:24 AM 0.4 12 L 1125 | 2015/10/15 Thu 09:42 AM 5.0 152 H 1126 | 2015/10/15 Thu 03:59 PM 0.3 9 L 1127 | 2015/10/15 Thu 10:04 PM 4.3 131 H 1128 | 2015/10/16 Fri 04:03 AM 0.5 15 L 1129 | 2015/10/16 Fri 10:20 AM 4.9 149 H 1130 | 2015/10/16 Fri 04:40 PM 0.3 9 L 1131 | 2015/10/16 Fri 10:45 PM 4.2 128 H 1132 | 2015/10/17 Sat 04:43 AM 0.6 18 L 1133 | 2015/10/17 Sat 11:01 AM 4.8 146 H 1134 | 2015/10/17 Sat 05:23 PM 0.4 12 L 1135 | 2015/10/17 Sat 11:30 PM 4.1 125 H 1136 | 2015/10/18 Sun 05:26 AM 0.7 21 L 1137 | 2015/10/18 Sun 11:46 AM 4.7 143 H 1138 | 2015/10/18 Sun 06:10 PM 0.5 15 L 1139 | 2015/10/19 Mon 12:20 AM 4.0 122 H 1140 | 2015/10/19 Mon 06:15 AM 0.8 24 L 1141 | 2015/10/19 Mon 12:38 PM 4.6 140 H 1142 | 2015/10/19 Mon 07:03 PM 0.5 15 L 1143 | 2015/10/20 Tue 01:18 AM 4.0 122 H 1144 | 2015/10/20 Tue 07:14 AM 0.8 24 L 1145 | 2015/10/20 Tue 01:37 PM 4.6 140 H 1146 | 2015/10/20 Tue 08:02 PM 0.5 15 L 1147 | 2015/10/21 Wed 02:21 AM 4.1 125 H 1148 | 2015/10/21 Wed 08:20 AM 0.8 24 L 1149 | 2015/10/21 Wed 02:40 PM 4.6 140 H 1150 | 2015/10/21 Wed 09:02 PM 0.3 9 L 1151 | 2015/10/22 Thu 03:21 AM 4.3 131 H 1152 | 2015/10/22 Thu 09:25 AM 0.6 18 L 1153 | 2015/10/22 Thu 03:41 PM 4.7 143 H 1154 | 2015/10/22 Thu 10:00 PM 0.1 3 L 1155 | 2015/10/23 Fri 04:20 AM 4.7 143 H 1156 | 2015/10/23 Fri 10:28 AM 0.3 9 L 1157 | 2015/10/23 Fri 04:41 PM 4.8 146 H 1158 | 2015/10/23 Fri 10:56 PM -0.1 -3 L 1159 | 2015/10/24 Sat 05:17 AM 5.1 155 H 1160 | 2015/10/24 Sat 11:28 AM 0.0 0 L 1161 | 2015/10/24 Sat 05:39 PM 5.0 152 H 1162 | 2015/10/24 Sat 11:50 PM -0.4 -12 L 1163 | 2015/10/25 Sun 06:12 AM 5.4 165 H 1164 | 2015/10/25 Sun 12:24 PM -0.3 -9 L 1165 | 2015/10/25 Sun 06:35 PM 5.1 155 H 1166 | 2015/10/26 Mon 12:41 AM -0.6 -18 L 1167 | 2015/10/26 Mon 07:03 AM 5.8 177 H 1168 | 2015/10/26 Mon 01:17 PM -0.6 -18 L 1169 | 2015/10/26 Mon 07:27 PM 5.2 158 H 1170 | 2015/10/27 Tue 01:31 AM -0.7 -21 L 1171 | 2015/10/27 Tue 07:53 AM 6.0 183 H 1172 | 2015/10/27 Tue 02:08 PM -0.7 -21 L 1173 | 2015/10/27 Tue 08:18 PM 5.2 158 H 1174 | 2015/10/28 Wed 02:20 AM -0.7 -21 L 1175 | 2015/10/28 Wed 08:42 AM 6.0 183 H 1176 | 2015/10/28 Wed 03:00 PM -0.7 -21 L 1177 | 2015/10/28 Wed 09:09 PM 5.1 155 H 1178 | 2015/10/29 Thu 03:10 AM -0.5 -15 L 1179 | 2015/10/29 Thu 09:31 AM 5.9 180 H 1180 | 2015/10/29 Thu 03:51 PM -0.6 -18 L 1181 | 2015/10/29 Thu 10:00 PM 4.9 149 H 1182 | 2015/10/30 Fri 04:00 AM -0.3 -9 L 1183 | 2015/10/30 Fri 10:21 AM 5.7 174 H 1184 | 2015/10/30 Fri 04:43 PM -0.4 -12 L 1185 | 2015/10/30 Fri 10:52 PM 4.7 143 H 1186 | 2015/10/31 Sat 04:51 AM 0.0 0 L 1187 | 2015/10/31 Sat 11:12 AM 5.4 165 H 1188 | 2015/10/31 Sat 05:34 PM -0.2 -6 L 1189 | 2015/10/31 Sat 11:45 PM 4.4 134 H 1190 | 2015/11/01 Sun 04:43 AM 0.3 9 L 1191 | 2015/11/01 Sun 11:04 AM 5.0 152 H 1192 | 2015/11/01 Sun 05:26 PM 0.1 3 L 1193 | 2015/11/01 Sun 11:41 PM 4.2 128 H 1194 | 2015/11/02 Mon 05:38 AM 0.6 18 L 1195 | 2015/11/02 Mon 11:59 AM 4.7 143 H 1196 | 2015/11/02 Mon 06:21 PM 0.3 9 L 1197 | 2015/11/03 Tue 12:40 AM 4.0 122 H 1198 | 2015/11/03 Tue 06:37 AM 0.9 27 L 1199 | 2015/11/03 Tue 12:57 PM 4.4 134 H 1200 | 2015/11/03 Tue 07:18 PM 0.5 15 L 1201 | 2015/11/04 Wed 01:39 AM 4.0 122 H 1202 | 2015/11/04 Wed 07:39 AM 1.0 30 L 1203 | 2015/11/04 Wed 01:53 PM 4.2 128 H 1204 | 2015/11/04 Wed 08:12 PM 0.6 18 L 1205 | 2015/11/05 Thu 02:33 AM 4.0 122 H 1206 | 2015/11/05 Thu 08:38 AM 1.0 30 L 1207 | 2015/11/05 Thu 02:47 PM 4.0 122 H 1208 | 2015/11/05 Thu 09:04 PM 0.6 18 L 1209 | 2015/11/06 Fri 03:25 AM 4.2 128 H 1210 | 2015/11/06 Fri 09:33 AM 0.9 27 L 1211 | 2015/11/06 Fri 03:39 PM 4.0 122 H 1212 | 2015/11/06 Fri 09:51 PM 0.5 15 L 1213 | 2015/11/07 Sat 04:13 AM 4.3 131 H 1214 | 2015/11/07 Sat 10:24 AM 0.8 24 L 1215 | 2015/11/07 Sat 04:29 PM 4.0 122 H 1216 | 2015/11/07 Sat 10:36 PM 0.4 12 L 1217 | 2015/11/08 Sun 04:59 AM 4.5 137 H 1218 | 2015/11/08 Sun 11:10 AM 0.6 18 L 1219 | 2015/11/08 Sun 05:15 PM 4.1 125 H 1220 | 2015/11/08 Sun 11:17 PM 0.3 9 L 1221 | 2015/11/09 Mon 05:40 AM 4.7 143 H 1222 | 2015/11/09 Mon 11:52 AM 0.4 12 L 1223 | 2015/11/09 Mon 05:58 PM 4.1 125 H 1224 | 2015/11/09 Mon 11:57 PM 0.2 6 L 1225 | 2015/11/10 Tue 06:20 AM 4.9 149 H 1226 | 2015/11/10 Tue 12:33 PM 0.2 6 L 1227 | 2015/11/10 Tue 06:39 PM 4.2 128 H 1228 | 2015/11/11 Wed 12:35 AM 0.2 6 L 1229 | 2015/11/11 Wed 06:58 AM 5.0 152 H 1230 | 2015/11/11 Wed 01:13 PM 0.1 3 L 1231 | 2015/11/11 Wed 07:19 PM 4.2 128 H 1232 | 2015/11/12 Thu 01:14 AM 0.2 6 L 1233 | 2015/11/12 Thu 07:36 AM 5.0 152 H 1234 | 2015/11/12 Thu 01:54 PM 0.0 0 L 1235 | 2015/11/12 Thu 08:00 PM 4.2 128 H 1236 | 2015/11/13 Fri 01:54 AM 0.2 6 L 1237 | 2015/11/13 Fri 08:15 AM 5.0 152 H 1238 | 2015/11/13 Fri 02:36 PM 0.0 0 L 1239 | 2015/11/13 Fri 08:41 PM 4.1 125 H 1240 | 2015/11/14 Sat 02:35 AM 0.3 9 L 1241 | 2015/11/14 Sat 08:55 AM 5.0 152 H 1242 | 2015/11/14 Sat 03:18 PM 0.0 0 L 1243 | 2015/11/14 Sat 09:25 PM 4.1 125 H 1244 | 2015/11/15 Sun 03:19 AM 0.3 9 L 1245 | 2015/11/15 Sun 09:37 AM 4.9 149 H 1246 | 2015/11/15 Sun 04:02 PM 0.0 0 L 1247 | 2015/11/15 Sun 10:11 PM 4.0 122 H 1248 | 2015/11/16 Mon 04:05 AM 0.4 12 L 1249 | 2015/11/16 Mon 10:23 AM 4.8 146 H 1250 | 2015/11/16 Mon 04:49 PM 0.0 0 L 1251 | 2015/11/16 Mon 11:02 PM 4.0 122 H 1252 | 2015/11/17 Tue 04:56 AM 0.5 15 L 1253 | 2015/11/17 Tue 11:14 AM 4.7 143 H 1254 | 2015/11/17 Tue 05:40 PM 0.0 0 L 1255 | 2015/11/17 Tue 11:59 PM 4.1 125 H 1256 | 2015/11/18 Wed 05:55 AM 0.6 18 L 1257 | 2015/11/18 Wed 12:12 PM 4.5 137 H 1258 | 2015/11/18 Wed 06:36 PM 0.0 0 L 1259 | 2015/11/19 Thu 01:00 AM 4.2 128 H 1260 | 2015/11/19 Thu 07:00 AM 0.6 18 L 1261 | 2015/11/19 Thu 01:15 PM 4.4 134 H 1262 | 2015/11/19 Thu 07:34 PM 0.0 0 L 1263 | 2015/11/20 Fri 01:59 AM 4.4 134 H 1264 | 2015/11/20 Fri 08:06 AM 0.4 12 L 1265 | 2015/11/20 Fri 02:16 PM 4.4 134 H 1266 | 2015/11/20 Fri 08:32 PM -0.2 -6 L 1267 | 2015/11/21 Sat 02:58 AM 4.7 143 H 1268 | 2015/11/21 Sat 09:09 AM 0.2 6 L 1269 | 2015/11/21 Sat 03:17 PM 4.5 137 H 1270 | 2015/11/21 Sat 09:29 PM -0.3 -9 L 1271 | 2015/11/22 Sun 03:55 AM 5.1 155 H 1272 | 2015/11/22 Sun 10:10 AM -0.1 -3 L 1273 | 2015/11/22 Sun 04:17 PM 4.5 137 H 1274 | 2015/11/22 Sun 10:24 PM -0.5 -15 L 1275 | 2015/11/23 Mon 04:50 AM 5.4 165 H 1276 | 2015/11/23 Mon 11:07 AM -0.4 -12 L 1277 | 2015/11/23 Mon 05:14 PM 4.6 140 H 1278 | 2015/11/23 Mon 11:17 PM -0.6 -18 L 1279 | 2015/11/24 Tue 05:43 AM 5.6 171 H 1280 | 2015/11/24 Tue 12:01 PM -0.6 -18 L 1281 | 2015/11/24 Tue 06:08 PM 4.7 143 H 1282 | 2015/11/25 Wed 12:08 AM -0.6 -18 L 1283 | 2015/11/25 Wed 06:33 AM 5.8 177 H 1284 | 2015/11/25 Wed 12:52 PM -0.7 -21 L 1285 | 2015/11/25 Wed 06:59 PM 4.7 143 H 1286 | 2015/11/26 Thu 12:57 AM -0.6 -18 L 1287 | 2015/11/26 Thu 07:21 AM 5.8 177 H 1288 | 2015/11/26 Thu 01:42 PM -0.7 -21 L 1289 | 2015/11/26 Thu 07:50 PM 4.6 140 H 1290 | 2015/11/27 Fri 01:47 AM -0.5 -15 L 1291 | 2015/11/27 Fri 08:10 AM 5.7 174 H 1292 | 2015/11/27 Fri 02:32 PM -0.7 -21 L 1293 | 2015/11/27 Fri 08:40 PM 4.5 137 H 1294 | 2015/11/28 Sat 02:37 AM -0.3 -9 L 1295 | 2015/11/28 Sat 08:58 AM 5.4 165 H 1296 | 2015/11/28 Sat 03:21 PM -0.6 -18 L 1297 | 2015/11/28 Sat 09:30 PM 4.4 134 H 1298 | 2015/11/29 Sun 03:27 AM 0.0 0 L 1299 | 2015/11/29 Sun 09:46 AM 5.1 155 H 1300 | 2015/11/29 Sun 04:09 PM -0.4 -12 L 1301 | 2015/11/29 Sun 10:21 PM 4.2 128 H 1302 | 2015/11/30 Mon 04:17 AM 0.2 6 L 1303 | 2015/11/30 Mon 10:34 AM 4.8 146 H 1304 | 2015/11/30 Mon 04:56 PM -0.2 -6 L 1305 | 2015/11/30 Mon 11:12 PM 4.0 122 H 1306 | 2015/12/01 Tue 05:08 AM 0.5 15 L 1307 | 2015/12/01 Tue 11:24 AM 4.4 134 H 1308 | 2015/12/01 Tue 05:45 PM 0.1 3 L 1309 | 2015/12/02 Wed 12:06 AM 3.9 119 H 1310 | 2015/12/02 Wed 06:02 AM 0.7 21 L 1311 | 2015/12/02 Wed 12:17 PM 4.1 125 H 1312 | 2015/12/02 Wed 06:36 PM 0.2 6 L 1313 | 2015/12/03 Thu 01:01 AM 3.9 119 H 1314 | 2015/12/03 Thu 07:00 AM 0.9 27 L 1315 | 2015/12/03 Thu 01:12 PM 3.9 119 H 1316 | 2015/12/03 Thu 07:28 PM 0.3 9 L 1317 | 2015/12/04 Fri 01:54 AM 3.9 119 H 1318 | 2015/12/04 Fri 07:58 AM 0.9 27 L 1319 | 2015/12/04 Fri 02:05 PM 3.7 113 H 1320 | 2015/12/04 Fri 08:18 PM 0.4 12 L 1321 | 2015/12/05 Sat 02:45 AM 4.0 122 H 1322 | 2015/12/05 Sat 08:54 AM 0.8 24 L 1323 | 2015/12/05 Sat 02:57 PM 3.6 110 H 1324 | 2015/12/05 Sat 09:06 PM 0.4 12 L 1325 | 2015/12/06 Sun 03:34 AM 4.2 128 H 1326 | 2015/12/06 Sun 09:47 AM 0.7 21 L 1327 | 2015/12/06 Sun 03:48 PM 3.6 110 H 1328 | 2015/12/06 Sun 09:54 PM 0.3 9 L 1329 | 2015/12/07 Mon 04:21 AM 4.3 131 H 1330 | 2015/12/07 Mon 10:37 AM 0.5 15 L 1331 | 2015/12/07 Mon 04:39 PM 3.6 110 H 1332 | 2015/12/07 Mon 10:39 PM 0.2 6 L 1333 | 2015/12/08 Tue 05:07 AM 4.5 137 H 1334 | 2015/12/08 Tue 11:23 AM 0.3 9 L 1335 | 2015/12/08 Tue 05:26 PM 3.7 113 H 1336 | 2015/12/08 Tue 11:23 PM 0.1 3 L 1337 | 2015/12/09 Wed 05:49 AM 4.7 143 H 1338 | 2015/12/09 Wed 12:06 PM 0.1 3 L 1339 | 2015/12/09 Wed 06:11 PM 3.8 116 H 1340 | 2015/12/10 Thu 12:05 AM 0.1 3 L 1341 | 2015/12/10 Thu 06:30 AM 4.9 149 H 1342 | 2015/12/10 Thu 12:48 PM -0.1 -3 L 1343 | 2015/12/10 Thu 06:54 PM 3.9 119 H 1344 | 2015/12/11 Fri 12:46 AM 0.0 0 L 1345 | 2015/12/11 Fri 07:10 AM 5.0 152 H 1346 | 2015/12/11 Fri 01:30 PM -0.2 -6 L 1347 | 2015/12/11 Fri 07:36 PM 4.0 122 H 1348 | 2015/12/12 Sat 01:29 AM 0.0 0 L 1349 | 2015/12/12 Sat 07:51 AM 5.0 152 H 1350 | 2015/12/12 Sat 02:14 PM -0.4 -12 L 1351 | 2015/12/12 Sat 08:20 PM 4.1 125 H 1352 | 2015/12/13 Sun 02:13 AM 0.0 0 L 1353 | 2015/12/13 Sun 08:34 AM 5.0 152 H 1354 | 2015/12/13 Sun 02:58 PM -0.4 -12 L 1355 | 2015/12/13 Sun 09:06 PM 4.1 125 H 1356 | 2015/12/14 Mon 03:00 AM 0.0 0 L 1357 | 2015/12/14 Mon 09:18 AM 5.0 152 H 1358 | 2015/12/14 Mon 03:43 PM -0.5 -15 L 1359 | 2015/12/14 Mon 09:54 PM 4.1 125 H 1360 | 2015/12/15 Tue 03:49 AM 0.0 0 L 1361 | 2015/12/15 Tue 10:05 AM 4.9 149 H 1362 | 2015/12/15 Tue 04:29 PM -0.5 -15 L 1363 | 2015/12/15 Tue 10:44 PM 4.2 128 H 1364 | 2015/12/16 Wed 04:41 AM 0.1 3 L 1365 | 2015/12/16 Wed 10:56 AM 4.7 143 H 1366 | 2015/12/16 Wed 05:18 PM -0.5 -15 L 1367 | 2015/12/16 Wed 11:39 PM 4.3 131 H 1368 | 2015/12/17 Thu 05:38 AM 0.2 6 L 1369 | 2015/12/17 Thu 11:52 AM 4.5 137 H 1370 | 2015/12/17 Thu 06:12 PM -0.4 -12 L 1371 | 2015/12/18 Fri 12:38 AM 4.4 134 H 1372 | 2015/12/18 Fri 06:41 AM 0.2 6 L 1373 | 2015/12/18 Fri 12:52 PM 4.3 131 H 1374 | 2015/12/18 Fri 07:09 PM -0.4 -12 L 1375 | 2015/12/19 Sat 01:37 AM 4.5 137 H 1376 | 2015/12/19 Sat 07:46 AM 0.2 6 L 1377 | 2015/12/19 Sat 01:54 PM 4.2 128 H 1378 | 2015/12/19 Sat 08:07 PM -0.4 -12 L 1379 | 2015/12/20 Sun 02:36 AM 4.7 143 H 1380 | 2015/12/20 Sun 08:50 AM 0.1 3 L 1381 | 2015/12/20 Sun 02:55 PM 4.1 125 H 1382 | 2015/12/20 Sun 09:04 PM -0.4 -12 L 1383 | 2015/12/21 Mon 03:33 AM 4.9 149 H 1384 | 2015/12/21 Mon 09:52 AM -0.1 -3 L 1385 | 2015/12/21 Mon 03:56 PM 4.1 125 H 1386 | 2015/12/21 Mon 10:01 PM -0.4 -12 L 1387 | 2015/12/22 Tue 04:30 AM 5.1 155 H 1388 | 2015/12/22 Tue 10:51 AM -0.3 -9 L 1389 | 2015/12/22 Tue 04:55 PM 4.1 125 H 1390 | 2015/12/22 Tue 10:56 PM -0.5 -15 L 1391 | 2015/12/23 Wed 05:25 AM 5.3 162 H 1392 | 2015/12/23 Wed 11:46 AM -0.5 -15 L 1393 | 2015/12/23 Wed 05:51 PM 4.2 128 H 1394 | 2015/12/23 Wed 11:49 PM -0.5 -15 L 1395 | 2015/12/24 Thu 06:15 AM 5.4 165 H 1396 | 2015/12/24 Thu 12:36 PM -0.6 -18 L 1397 | 2015/12/24 Thu 06:42 PM 4.2 128 H 1398 | 2015/12/25 Fri 12:38 AM -0.5 -15 L 1399 | 2015/12/25 Fri 07:03 AM 5.4 165 H 1400 | 2015/12/25 Fri 01:24 PM -0.7 -21 L 1401 | 2015/12/25 Fri 07:31 PM 4.3 131 H 1402 | 2015/12/26 Sat 01:27 AM -0.4 -12 L 1403 | 2015/12/26 Sat 07:49 AM 5.3 162 H 1404 | 2015/12/26 Sat 02:12 PM -0.7 -21 L 1405 | 2015/12/26 Sat 08:19 PM 4.2 128 H 1406 | 2015/12/27 Sun 02:15 AM -0.3 -9 L 1407 | 2015/12/27 Sun 08:35 AM 5.1 155 H 1408 | 2015/12/27 Sun 02:57 PM -0.6 -18 L 1409 | 2015/12/27 Sun 09:07 PM 4.2 128 H 1410 | 2015/12/28 Mon 03:03 AM -0.1 -3 L 1411 | 2015/12/28 Mon 09:20 AM 4.9 149 H 1412 | 2015/12/28 Mon 03:42 PM -0.5 -15 L 1413 | 2015/12/28 Mon 09:54 PM 4.1 125 H 1414 | 2015/12/29 Tue 03:50 AM 0.1 3 L 1415 | 2015/12/29 Tue 10:05 AM 4.6 140 H 1416 | 2015/12/29 Tue 04:25 PM -0.3 -9 L 1417 | 2015/12/29 Tue 10:40 PM 4.0 122 H 1418 | 2015/12/30 Wed 04:37 AM 0.3 9 L 1419 | 2015/12/30 Wed 10:50 AM 4.3 131 H 1420 | 2015/12/30 Wed 05:08 PM -0.2 -6 L 1421 | 2015/12/30 Wed 11:28 PM 3.9 119 H 1422 | 2015/12/31 Thu 05:25 AM 0.5 15 L 1423 | 2015/12/31 Thu 11:37 AM 4.0 122 H 1424 | 2015/12/31 Thu 05:53 PM 0.0 0 L 1425 | --------------------------------------------------------------------------------