├── reportermate ├── __init__.py ├── command_line.py └── reportermate.py ├── requirements.txt ├── tests ├── expenses-replace.json ├── donations-replace.json ├── story.txt ├── tests.py ├── emissions-template.txt ├── unemployment-sample.txt ├── expenses-template.txt ├── unemployment-template.txt ├── emissions.csv ├── donations-template.txt ├── expenses.csv ├── date-test.csv └── unemployment.csv ├── .gitignore ├── CHANGES.txt ├── setup.py ├── LICENCE.txt ├── README.rst └── README.md /reportermate/__init__.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from .reportermate import analyseAndRender -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pydateinfer>=0.3.0 2 | pandas>=0.22.2 3 | pybars3>=0.9.3 4 | simplejson>=3.16.0 -------------------------------------------------------------------------------- /tests/expenses-replace.json: -------------------------------------------------------------------------------- 1 | [ 2 | {" MP":""}, 3 | {"Mr ":""}, 4 | {"Senator the Hon ":""}, 5 | {"The Hon ":""} 6 | ] -------------------------------------------------------------------------------- /tests/donations-replace.json: -------------------------------------------------------------------------------- 1 | { 2 | "replacements":[ 3 | {"LIB":"Liberal party"}, 4 | {"ALP":"Labor party"}, 5 | {"GRN":"Greens"}, 6 | {"NAT":"Nationals"} 7 | ] 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/story.txt: -------------------------------------------------------------------------------- 1 | Australia's unemployment rate has stayed steady at 5.7. 2 | 3 | This is lower than the average unemployment rate for the year to date. 4 | 5 | The total number of employed people increased, with 12122.1 in total. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled python modules. 2 | *.pyc 3 | 4 | # Folders 5 | /dist/ 6 | /venv/ 7 | /build/ 8 | 9 | # Python egg metadata, regenerated from source files by setuptools. 10 | /*.egg-info 11 | 12 | # Files 13 | 14 | story.txt -------------------------------------------------------------------------------- /tests/tests.py: -------------------------------------------------------------------------------- 1 | import reportermate 2 | 3 | print(reportermate.analyseAndRender('expenses.csv', 'expenses-template.txt', 'expenses-replace.json')) 4 | print(reportermate.analyseAndRender('unemployment.csv', 'unemployment-template.txt')) 5 | print(reportermate.analyseAndRender('donations.csv', 'donations-template.txt', 'donations-replace.json')) 6 | -------------------------------------------------------------------------------- /CHANGES.txt: -------------------------------------------------------------------------------- 1 | v0.6.1, 2019-06-29 2 | 3 | -Removed Tableschema from dependancies, now just using dateinfer for guessing dates 4 | -Added a new helper function makeList which adds support for {{#each}} in handlebars 5 | -Changed the commandline argument "replacements" to "options", which still should point to a json file. Replacements should now be under the key "replacements" in the json. 6 | -------------------------------------------------------------------------------- /tests/emissions-template.txt: -------------------------------------------------------------------------------- 1 | Australia's emissions have {{checkDifferenceBetweenValues ds='default' col='nggiPlusProjections' row1=-1 row2=-2 text='increased to, decreased to, stayed steady at'}} to {{getCellByNumber ds='default' col='nggiPlusProjections' row=-1}} megatonnes of C02. 2 | 3 | This is {{checkAgainstRollingMean col='nggiPlusProjections' row=-1 length=8 text='higher than, lower than, the same as'}} the average of the past two years of emissions. -------------------------------------------------------------------------------- /tests/unemployment-sample.txt: -------------------------------------------------------------------------------- 1 |

Australia's unemployment rate has {{ increased to | decreased to | stayed steady at }} {{if increase}} {{rate most recent}}.

2 | 3 |

This is {{above | below | steady 12 month average}} the 12 month average.

4 | 5 |

The total number of people with jobs {{increased to | decreased to | stayed steady at}} {{total jobs}}, according to the {{data source}}.

6 | 7 |

Full-time employment {{ increased | decreased | steady }}, while part time employment {{ increased | decreased | steady }}.

8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /reportermate/command_line.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import codecs 3 | from reportermate import analyseAndRender 4 | 5 | parser = argparse.ArgumentParser() 6 | parser.add_argument("data",help="The path to your data csv") 7 | parser.add_argument("template",nargs='?', help="The path to your story template", default='') 8 | parser.add_argument("options",nargs='?', help="A json file defining reportermate options",default='') 9 | args = parser.parse_args() 10 | 11 | def main(): 12 | output = analyseAndRender(args.data, args.template, args.options) 13 | print(output) 14 | with codecs.open("story.txt", "w", encoding='utf8') as f: 15 | f.write(output) -------------------------------------------------------------------------------- /tests/expenses-template.txt: -------------------------------------------------------------------------------- 1 |

Australia's politicians spent a total of ${{formatNumber (totalSumOfAllCols ds='default') }} on travel and other expenses, according to recently published figures.

2 |

The biggest spender for the travel allowance category was {{getRankedItemDescending ds='default' col="Name" sortBy="Travelling Allowance" row=0}}, followed by {{getRankedItemDescending ds='default' col="Name" sortBy="Travelling Allowance" row=1}}

3 |

{{getRankedItemDescending ds='default' col="Name" sortBy="Family Travel Costs" row=0}} claimed the most for family travel costs, spending ${{formatNumber (getRankedItemDescending ds='default' col="Family Travel Costs" sortBy="Family Travel Costs" row=0)}}.

-------------------------------------------------------------------------------- /tests/unemployment-template.txt: -------------------------------------------------------------------------------- 1 | Australia's unemployment rate has {{checkDifferenceBetweenValues ds='default' col='Unemployment rate - trend' row1=-1 row2=-2 text='increased to, decreased to, stayed steady at'}} {{getCellByNumber ds='default' col='Unemployment rate - trend' row=-1}}. 2 | 3 | This is {{checkAgainstRollingMean col='Unemployment rate - trend' row=-1 length=12 text='higher than, lower than, the same as'}} the average unemployment rate for the year to date. 4 | 5 | The total number of employed people {{checkDifferenceBetweenValues ds='default' col='Employed persons total - trend' row1=-1 row2=-2 text='increased, decreased, stayed stayed'}}, with {{getCellByNumber ds='default' col='Employed persons total - trend' row=-1}} in total. -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import os 2 | from setuptools import setup 3 | 4 | setup(name='reportermate', 5 | version='0.6.2', 6 | description='Automated news stories and reports from datasets', 7 | long_description=open('README.rst').read(), 8 | classifiers=[ 9 | 'License :: OSI Approved :: MIT License', 10 | 'Programming Language :: Python :: 2', 11 | 'Programming Language :: Python :: 3', 12 | 'Topic :: Scientific/Engineering :: Information Analysis', 13 | ], 14 | keywords='data-analysis text data analysis', 15 | url='https://github.com/nickjevershed/Reportermate-Lib', 16 | author='Nick Evershed', 17 | author_email='nick.evershed@gmail.com', 18 | license='MIT', 19 | entry_points = { 20 | "console_scripts":['reportermate = reportermate.command_line:main'] 21 | }, 22 | packages=['reportermate'], 23 | install_requires=['pandas','pybars3','pydateinfer','simplejson'], 24 | zip_safe=False) -------------------------------------------------------------------------------- /LICENCE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Nick Evershed 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ReporterMate 2 | ============ 3 | 4 | Reportermate is an open source project to `create an automated news 5 | reporting system `__. This library forms the 6 | base of the system, and combines the pandas data analysis library, the 7 | handlebars templating language, and a whole bunch of helper functions to 8 | automate the generation of text reports from data. 9 | 10 | Installation 11 | ------------ 12 | 13 | :: 14 | 15 | pip install reportermate 16 | 17 | Usage 18 | ----- 19 | 20 | Installing the reportermate lib adds the reportermate function to your 21 | command line. 22 | 23 | :: 24 | 25 | reportermate my-data.csv my-template.txt 26 | 27 | Using this function will take your data and then analyse and render it 28 | according to the template provided. 29 | 30 | To use reportermate from within another python script, import the 31 | analyseAndRender function: 32 | 33 | .. code:: python 34 | 35 | from reportermate import analyseAndRender 36 | analyseAndRender(my-data.csv,my-template.txt) 37 | 38 | Templates 39 | --------- 40 | 41 | Reportermate uses the handlebars template language to define the 42 | analysis of the dataset, and how the results should be rendered into 43 | text. The template functions are the key to generating your text 44 | results. 45 | 46 | *Template function definitions and examples coming soon...* 47 | -------------------------------------------------------------------------------- /tests/emissions.csv: -------------------------------------------------------------------------------- 1 | quarter,nggiPlusProjections,ccaTo2030,parisErt,totalRemaining,emissionsSource 01/03/05,146.9,,,,NGGI 01/06/05,150.3,,,,NGGI 01/09/05,152.8,,,,NGGI 01/12/05,151.1,,,,NGGI 01/03/06,150.6,,,,NGGI 01/06/06,154.1,,,,NGGI 01/09/06,156.7,,,,NGGI 01/12/06,156,,,,NGGI 01/03/07,143.8,,,,NGGI 01/06/07,144.5,,,,NGGI 01/09/07,150.1,,,,NGGI 01/12/07,145.5,,,,NGGI 01/03/08,144.2,,,,NGGI 01/06/08,145.4,,,,NGGI 01/09/08,152.8,,,,NGGI 01/12/08,149.1,,,,NGGI 01/03/09,143.2,,,,NGGI 01/06/09,145.9,,,,NGGI 01/09/09,147.9,,,,NGGI 01/12/09,148,,,,NGGI 01/03/10,138.6,,,,NGGI 01/06/10,138.5,,,,NGGI 01/09/10,142.4,,,,NGGI 01/12/10,138.4,,,,NGGI 01/03/11,132.5,,,,NGGI 01/06/11,135.1,,,,NGGI 01/09/11,139,,,,NGGI 01/12/11,135.9,,,,NGGI 01/03/12,135.9,,,,NGGI 01/06/12,136.3,,,,NGGI 01/09/12,137.2,,,,NGGI 01/12/12,135.9,,,10100,NGGI 01/03/13,131.3,142.5825,,9968.7,NGGI 01/06/13,133,141.414375,,9835.7,NGGI 01/09/13,133.3,140.24625,,9702.4,NGGI 01/12/13,132.7,139.078125,,9569.7,NGGI 01/03/14,130.9,137.91,,9438.8,NGGI 01/06/14,130,136.741875,,9308.8,NGGI 01/09/14,135.7,135.57375,,9173.1,NGGI 01/12/14,133.3,134.405625,,9039.8,NGGI 01/03/15,131.1,133.2375,,8908.7,NGGI 01/06/15,132.5,132.069375,,8776.2,NGGI 01/09/15,136.2,130.90125,,8640,NGGI 01/12/15,134.5,129.733125,134.51,8505.5,NGGI 01/03/16,133.7,128.565,134.08,8371.8,NGGI 01/06/16,132.8,127.396875,133.65,8239,NGGI 01/09/16,136.63,126.22875,133.22,8102.37,Projections 01/12/16,133.93,125.060625,132.79,7968.44,Projections 01/03/17,135.47,123.8925,132.36,7832.97,Projections -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ReporterMate 2 | ======================= 3 | 4 | Reportermate is an open source project to [create an automated news reporting system](http://reportermate.com/). This library forms the base of the system, and combines the pandas data analysis library, the handlebars templating language, and a whole bunch of helper functions to automate the generation of text reports from data. 5 | 6 | Installation 7 | ------------- 8 | 9 | ```` 10 | pip install reportermate 11 | ```` 12 | 13 | Usage 14 | ------ 15 | 16 | Installing the reportermate lib adds the reportermate function to your command line. 17 | 18 | ```` 19 | reportermate my-data.csv my-template.txt 20 | ```` 21 | 22 | Using this function will take your data and then analyse and render it according to the template provided. 23 | 24 | To use reportermate from within another python script, import the analyseAndRender function: 25 | 26 | ````Python 27 | from reportermate import analyseAndRender 28 | analyseAndRender(my-data.csv,my-template.txt) 29 | ```` 30 | 31 | Both the commandline and analyseAndRender have an optional third argument, which is the location of an json file defining various reportermate options, eg: 32 | 33 | ```` 34 | reportermate my-data.csv my-template.txt my-options.json 35 | ```` 36 | 37 | This can be used to replace strings when compiling the final story, and will have futher options added in future such as defininf date columns and formats. 38 | 39 | Most of the work is done by the template through the use of helper functions. To see working examples and templates, check out the tests folder. 40 | 41 | Template helper functions 42 | ----------- 43 | 44 | Reportermate uses the handlebars template language to define the analysis of the dataset, and how the results should be rendered into text. The template functions are the key to generating your text results. 45 | 46 | **getCellByNumber** 47 | 48 | Get a specific cell from a dataframe given a dataframe, column label, and row number. Use 'default' for ds unless chaining helper functions. 49 | 50 | ```` 51 | {{getCellByNumber ds='default' col='column_name' row='10'}} 52 | ```` 53 | **getCellByLabel** 54 | 55 | Get a specific cell from a dataframe given a dataframe, column label, and row label. Use 'default' for ds unless chaining helper functions. 56 | 57 | ```` 58 | {{getCellByLabel ds='default' col='column_name' row='row_name'}} 59 | ```` 60 | 61 | **checkDifferenceBetweenValues** 62 | 63 | Evaluates the difference between two cells, and returns the corresponding text given a comma-delimited string 64 | 65 | ```` 66 | {{checkDifferenceBetweenValues ds='default' col='column_name' row1='1' row2='2' 'higher than,lower than,the same'}} 67 | ```` 68 | 69 | **checkAgainstRollingMean** 70 | 71 | Checks a cell from a column against the rolling mean of that column, and returns the corresponding text given a comma-delimited string. Length is the time window to use 72 | 73 | ```` 74 | {{checkAgainstRollingMean ds='default' col='column_name' row='1' length='6' 'higher than average,lower than average,the same'}} 75 | ```` 76 | 77 | **getRollingMean** 78 | 79 | Returns the rolling mean of a given column for a defined number of periods 80 | 81 | ```` 82 | {{getRollingMean ds='default' col='column_name' length='6'}} 83 | ```` 84 | 85 | **getDifference** 86 | 87 | Returns the difference between two cells 88 | 89 | ```` 90 | {{getDifference ds='default' col='column_name' row1='1' row2='2'}} 91 | ```` 92 | 93 | **sortAscending** 94 | 95 | Sorts data based on a given column name in ascending order 96 | 97 | ```` 98 | {{sortAscending ds='default' sortBy='column_name'}} 99 | ```` 100 | 101 | **sortDescending** 102 | 103 | Sorts data based on a given column name in descending order 104 | 105 | ```` 106 | {{sortDescending ds='default' sortBy='column_name'}} 107 | ```` 108 | 109 | **getRankedItemDescending** 110 | 111 | Sorts data based on a given column name in descending order, then gets the nth cell value for a given column 112 | 113 | ```` 114 | {{getRankedItemDescending ds='default' sortBy='column_name' row='1'}} 115 | ```` 116 | 117 | **sumAcrossAllCols** 118 | 119 | Sums values across rows, creates a new column named total. Note - probably breaks if a total column already exists 120 | 121 | ```` 122 | {{sumAcrossAllCols ds='default'}} 123 | ```` 124 | 125 | **groupBy** 126 | 127 | Groupby column or columns, then perform an operation (sum, count, mean) on the result. eg sum by category 128 | 129 | ```` 130 | {{groupBy ds='default' groupByThis='column_name' operator='sum'}} 131 | ```` 132 | 133 | **groupByTime** 134 | 135 | Group by the year, month or day and return a specific month, day or year 136 | 137 | ```` 138 | {{groupByTime ds='default' groupByThis='column_name' timePeriod='time_period' operator='sum'}} 139 | ```` 140 | 141 | **filterBy** 142 | 143 | Returns a new dataframe filtered by the given value/s for the given column/s 144 | 145 | ```` 146 | {{filterBy ds='default' cols='column_name1,column_name2' timePeriod='time_period' operator='sum'}} 147 | ```` 148 | 149 | **summariseCol** 150 | 151 | Does maths on a specific column, eg sum, mean, count, mode 152 | 153 | ```` 154 | {{summariseCol ds='default' col='column_name' operator='sum'}} 155 | ```` 156 | 157 | **checkDifferenceBetweenResults** 158 | 159 | Tests greater than, less than, or equal to with two values, and returns a string from a comma-seperated list 160 | 161 | ```` 162 | {{checkDifferenceBetweenResults ds='default' val1='1' val2='2' 'higher than,lower than,the same'}} 163 | ```` 164 | 165 | **uniqueValues** 166 | 167 | ```` 168 | {{uniqueValues ds='default' col='column_name'}} 169 | ```` 170 | 171 | **summariseColByTimePeriod** 172 | 173 | Groups by a given time period, then performs the given operation. eg. get the monthly average 174 | 175 | ```` 176 | {{summariseColByTimePeriod ds='default' dateCol='column_name' col='column_name' freq='6' operator='mean'}} 177 | ```` 178 | 179 | **makeList** 180 | 181 | Turns a dataframe into a list of dicts, so it can be accessed by the default pybars iterator functions like {{#each}} 182 | 183 | ```` 184 | {{makeList ds='dataframe' limit=None}} 185 | ```` 186 | -------------------------------------------------------------------------------- /tests/donations-template.txt: -------------------------------------------------------------------------------- 1 | Australian political parties declared donations worth ${{formatNumber (summariseCol ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' operator='sum')}} in the 2016-17 financial year, according to the latest figures from the Australian Electoral Commission. 2 | 3 | This amount is {{checkDifferenceBetweenResults val1=(summariseCol ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' operator='sum') val2=(summariseCol ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs' filterByThis='Donation') groupByThis='period' operator='sum') col='AmountReceived' operator='mean') text='higher than,lower than,the same as'}} usual, with donations averaging ${{formatNumber (summariseCol ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs' filterByThis='Donation') groupByThis='period' operator='sum') col='AmountReceived' operator='mean')}} per year over the past {{uniqueValues ds='default' col='period'}} years. 4 | 5 | The largest donation overall, ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' sortBy='AmountReceived' row=0)}}, was made by {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='PayerClientNm' sortBy='AmountReceived' row=0}} to the {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='partyGroup' sortBy='AmountReceived' row=0}}. 6 | 7 | The party with the most donations was the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=0}}, which declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=0)}} followed by the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=1}} with ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=1)}}. 8 | 9 | The {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=0}} also declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=0)}} in 'other receipts', which includes money received from things like investments, but also includes money from party fundraisers where people pay for event tickets in lieu of donations. 10 | 11 | The {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=1}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=1)}} in other receipts, the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=2}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=2)}}, and the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=3}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=3)}}. 12 | 13 | The top five donors to the Liberal party were: 14 | 15 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=0) }} 16 | 17 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=1) }} 18 | 19 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=2) }} 20 | 21 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=3) }} 22 | 23 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=4) }} 24 | 25 | The top five donors to the Labor party were: 26 | 27 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=0) }} 28 | 29 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=1) }} 30 | 31 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=2) }} 32 | 33 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=3) }} 34 | 35 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=4) }} 36 | 37 | The top five donors to the Greens were: 38 | 39 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=0) }} 40 | 41 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=1) }} 42 | 43 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=2) }} 44 | 45 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=3) }} 46 | 47 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=4) }} 48 | 49 | This story was generated by ReporterMate, an automated data reporting system. You can report errors or bugs to nick.evershed@gmail.com or @nickevershed. -------------------------------------------------------------------------------- /reportermate/reportermate.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import pandas as pd 4 | import dateinfer 5 | import os 6 | from datetime import datetime 7 | from pybars import Compiler 8 | import simplejson as json 9 | import io 10 | import csv 11 | import itertools 12 | 13 | # import global_stuff as g 14 | # import helpers as _hlp 15 | 16 | df = None 17 | 18 | # Helper function for strings 19 | 20 | def _cleanString(string): 21 | return string.lower().strip() 22 | 23 | # Get information about the data 24 | 25 | def _getDataInfo(fileObj): 26 | 27 | sample = [] 28 | 29 | with open(fileObj) as csvFile: 30 | reader = csv.reader(csvFile) 31 | headers = next(reader) 32 | for row in itertools.islice(reader, 100): 33 | sample.append(row) 34 | 35 | # If column has a date-like word in it, try getting the date format 36 | 37 | dateHeaders = ['year','month','fy','day','date'] 38 | dateMatches = {"%a":"Day","%A":"Day","%w":"Day","%d":"Day","%-d":"Day","%b":"Month","%B":"Month","%m":"Month","%-m":"Month","%y":"Year","%Y":"Year"} 39 | 40 | possibleDates = [] 41 | 42 | for i, header in enumerate(headers): 43 | for dateString in dateHeaders: 44 | if dateString == _cleanString(header): 45 | # print("Possible date column:", header) 46 | possibleDates.append(i) 47 | 48 | dateColumns = [] 49 | 50 | if possibleDates: 51 | hyphenReplace = False 52 | for colIndex in possibleDates: 53 | dateSample = [] 54 | for row in sample: 55 | # Work around because dateinfer breaks on dates like Jul-1976 and I don't know why 56 | 57 | if "-" in row[colIndex]: 58 | hyphenReplace = True 59 | dateSample.append(row[colIndex].replace("-","/")) 60 | else: 61 | dateSample.append(row[colIndex]) 62 | # print dateSample 63 | dateGuess = dateinfer.infer(dateSample).replace("%M","%y") # hack to stop years showing as minutes 64 | 65 | # For single days, months and years 66 | # print(dateGuess) 67 | 68 | # Work around because dateinfer breaks on dates like Jul-1976 and I don't know why 69 | 70 | if hyphenReplace: 71 | dateGuess = dateGuess.replace("/","-") 72 | 73 | dateColumns.append({"index":colIndex,"format":dateGuess}) 74 | 75 | return {"dateColumns":dateColumns} 76 | 77 | def _makeDataFrame(fileObj): 78 | 79 | # Get the headers and more detailed information about column types 80 | 81 | fileInfo = _getDataInfo(fileObj) 82 | 83 | # Work out which ones are columns with a proper date 84 | 85 | dateColumns = fileInfo['dateColumns'] 86 | 87 | # Read the CSV into a pandas dataframe 88 | 89 | newDf = pd.read_csv(fileObj) 90 | 91 | # print(newDf.dtypes) 92 | 93 | # Parse any dates in place that need to be parsed 94 | 95 | if dateColumns: 96 | for obj in dateColumns: 97 | dateFormat = obj['format'] 98 | dateIndex = obj['index'] 99 | newDf[newDf.columns[dateIndex]] = pd.to_datetime(newDf[newDf.columns[dateIndex]], format=dateFormat) 100 | 101 | return newDf 102 | 103 | def _replaceStrings(replacements,output): 104 | for replacement in replacements: 105 | for key, value in replacement.items(): 106 | output = output.replace(key, value) 107 | 108 | return output 109 | 110 | # This is the main function for doing things 111 | 112 | def analyseAndRender(dataLocation,templateLocation,optionsLocation=""): 113 | global df 114 | 115 | if optionsLocation != "": 116 | with open(optionsLocation) as json_file: 117 | options = json.load(json_file) 118 | 119 | # For local csv 120 | 121 | if ".csv" in dataLocation and "https://docs.google.com" not in dataLocation: 122 | df = _makeDataFrame(dataLocation) 123 | 124 | # For google sheets as csv 125 | 126 | elif "https://docs.google.com" in dataLocation: 127 | print("It's a google sheet") 128 | 129 | # If its already a dataframe 130 | 131 | else: 132 | df = dataLocation 133 | 134 | with io.open(templateLocation, 'r', encoding='utf-8') as tempSource: 135 | compiler = Compiler() 136 | template = compiler.compile(tempSource.read()) 137 | 138 | helpers = { 139 | "getCellByNumber":getCellByNumber, 140 | "getCellByLabel":getCellByLabel, 141 | "checkDifferenceBetweenValues":checkDifferenceBetweenValues, 142 | "checkAgainstRollingMean":checkAgainstRollingMean, 143 | "getRollingMean":getRollingMean, 144 | "getDifference":getDifference, 145 | "sortAscending":sortAscending, 146 | "sortDescending":sortDescending, 147 | "getRankedItemDescending":getRankedItemDescending, 148 | "sumAcrossAllCols":sumAcrossAllCols, 149 | "totalSumOfAllCols":totalSumOfAllCols, 150 | "formatNumber":formatNumber, 151 | "groupBy":groupBy, 152 | "groupByTime":groupByTime, 153 | "filterBy":filterBy, 154 | "summariseCol":summariseCol, 155 | "checkDifferenceBetweenResults":checkDifferenceBetweenResults, 156 | "uniqueValues":uniqueValues, 157 | "summariseColByTimePeriod":summariseColByTimePeriod, 158 | "makeList":makeList 159 | } 160 | 161 | output = template(df,helpers=helpers) 162 | 163 | # String replacements 164 | if optionsLocation != "": 165 | if 'replacements' in options: 166 | output = _replaceStrings(options['replacements'], output) 167 | 168 | # print(output.encode('utf-8')) 169 | return output 170 | 171 | def _getCurrentDataframe(ds): 172 | if type(ds) is str: 173 | return df 174 | else: 175 | return ds 176 | 177 | def formatNumber(con, num): 178 | if num >= 1000000: 179 | num = num / 1000000.0 180 | 181 | if num % 1 != 0: 182 | return "{0:,.1f}".format(num) + "m" 183 | else: 184 | return "{0:,.0f}".format(num) + "m" 185 | else: 186 | if num % 1 != 0: 187 | return "{0:,.1f}".format(num) 188 | else: 189 | return "{0:,.0f}".format(num) 190 | 191 | # All the helper functions required to run pandas functions on the data from the template 192 | 193 | # Get a specific cell from a dataframe given a dataframe, column label, and row number 194 | 195 | def getCellByNumber(con, ds, col, row): 196 | currDf = _getCurrentDataframe(ds) 197 | return currDf[col].iloc[row] 198 | 199 | # Get a specific cell from a dataframe given a dataframe, column label, and row label 200 | 201 | def getCellByLabel(con, ds, col, row): 202 | currDf = _getCurrentDataframe(ds) 203 | return currDf[col].loc[row] 204 | 205 | # Get the column based on the vale of a row 206 | 207 | def getColByRowValue(con, ds, col1, value, col2): 208 | currDf = _getCurrentDataframe(ds) 209 | return currDf[currDf[col1] == value][col2].iloc[0] 210 | 211 | # Sorts dataframe based on a given column name in ascending order 212 | 213 | def sortAscending(con, ds, sortBy): 214 | result = ds.sort_values(sortBy, True) 215 | return result 216 | 217 | # Sorts dataframe based on a given column name in ascending order, then gets the nth cell value for a given column 218 | 219 | def getRankedItemAscending(con, ds, col, sortBy, row): 220 | currDf = _getCurrentDataframe(ds) 221 | sortedDf = currDf.sort_values(sortBy) 222 | result = getCell(sortedDf, col, row) 223 | return result 224 | 225 | # Sorts dataframe based on a given column name in descending order 226 | 227 | def sortDescending(con, ds, sortBy): 228 | result = ds.sort_values(sortBy,ascending=False) 229 | return result 230 | 231 | # Sorts dataframe based on a given column name in descending order, then gets the nth cell value for a given column 232 | 233 | def getRankedItemDescending(con, ds, col, sortBy, row): 234 | currDf = _getCurrentDataframe(ds) 235 | sortedDf = currDf.sort_values(sortBy,ascending=False) 236 | result = sortedDf[col].iloc[row] 237 | return result 238 | 239 | # Sorts dataframe based on a given column name in descending order, then gets the rank of a specific cell 240 | 241 | def getRankOfItemDescending(con, ds, col, sortBy, row): 242 | currDf = _getCurrentDataframe(ds) 243 | sortedDf = currDf.sort_values(sortBy,ascending=False) 244 | result = sortedDf[col].iloc[row] 245 | return result 246 | 247 | # Does maths on a specific column, eg sum, mean, count, mode 248 | 249 | def summariseCol(con,ds,col,operator): 250 | currDf = _getCurrentDataframe(ds) 251 | result = getattr(currDf[col], operator)() 252 | return result 253 | 254 | # Get monthly average for a col 255 | 256 | def summariseColByTimePeriod(con,ds,dateCol,col,freq,operator): 257 | currDf = _getCurrentDataframe(ds) 258 | dg = currDf.groupby(currDf['date'].dt.month, as_index=False) 259 | # dg = currDf.groupby(currDf[dateCol].dt[freq], as_index=False) 260 | result = getattr(dg, operator)() 261 | return result 262 | 263 | # Sums values across rows, creates a new column named total. Note - probably breaks if a total column already exists 264 | 265 | def sumAcrossAllCols(con, ds): 266 | currDf = _getCurrentDataframe(ds) 267 | totalColName = 'total' 268 | newDf = currDf 269 | if 'total' in newDf: 270 | totalColName = 'newTotal' 271 | newDf[totalColName] = newDf.sum(axis=1) 272 | return newDf 273 | 274 | # Sum of the total column 275 | 276 | def totalSumOfAllCols(con, ds): 277 | currDf = _getCurrentDataframe(ds) 278 | totalColName = 'total' 279 | newDf = currDf 280 | if 'total' in newDf: 281 | totalColName = 'newTotal' 282 | newDf[totalColName] = newDf.sum(axis=1) 283 | return newDf[totalColName].sum() 284 | 285 | def sumAcrossSpecificCols(con, ds, cols): 286 | totalColName = 'total' 287 | 288 | if 'total' in df.columns: 289 | totalColName = 'newTotal' 290 | 291 | df[totalColName] = df[cols].sum(axis=1) 292 | return df 293 | 294 | # Evaluates the difference between two cells, and returns the corresponding text given a comma-delimited string 295 | 296 | def checkDifferenceBetweenValues(con, ds, col, row1, row2, text): 297 | currDf = _getCurrentDataframe(ds) 298 | 299 | val1 = currDf[col].iloc[row1] 300 | val2 = currDf[col].iloc[row2] 301 | textList = text.split(",") 302 | 303 | if val1 > val2: 304 | # eg gone up 305 | return textList[0] 306 | 307 | if val1 < val2: 308 | # eg dropped 309 | return textList[1] 310 | 311 | if val1 == val2: 312 | # eg stayed the same 313 | return textList[2] 314 | 315 | def checkDifferenceBetweenResults(con, val1, val2, text): 316 | 317 | textList = text.split(",") 318 | 319 | if val1 > val2: 320 | # eg is higher than 321 | return textList[0] 322 | 323 | if val1 < val2: 324 | # eg is lower than 325 | return textList[1] 326 | 327 | if val1 == val2: 328 | # eg is the same 329 | return textList[2] 330 | 331 | # Checks a cell from a column against the rolling mean of that column 332 | 333 | def checkAgainstRollingMean(con, col, row, length, text): 334 | textList = text.split(",") 335 | val = df[col].iloc[row] 336 | mean = df[col].rolling(window=length).mean().iloc[-1] 337 | if val > mean: 338 | return textList[0] 339 | if val < mean: 340 | return textList[1] 341 | if val == mean: 342 | return textList[2] 343 | 344 | # Returns the rolling mean for a defined number of periods 345 | 346 | def getRollingMean(con, col, length): 347 | mean = df[col].rolling(window=length).mean().iloc[-1] 348 | return mean 349 | 350 | # Returns the difference between two cells 351 | 352 | def getDifference(con, col, row1, row2): 353 | val1 = df[col].iloc[row1] 354 | val2 = df[col].iloc[row2] 355 | return val1 - val2 356 | 357 | # Groupby column or columns, then perform an operation on the result. eg sum by category 358 | 359 | def groupBy(con, ds, groupByThis, operator): 360 | currDf = _getCurrentDataframe(ds) 361 | 362 | if "," in groupByThis: 363 | groupByThis = groupByThis.split(",") 364 | else: 365 | groupByThis = [groupByThis] 366 | 367 | dg = currDf.groupby(groupByThis, as_index=False) 368 | result = getattr(dg, operator)() 369 | return result 370 | 371 | # Group by the year, month or day and return a specific month, day or year 372 | 373 | def groupByTime(con, ds, groupByThis, timePeriod, operator): 374 | 375 | currDf = _getCurrentDataframe(ds) 376 | dg = currDf.groupby(getattr(currDf[groupByThis].dt, timePeriod)) 377 | result = getattr(dg, operator)() 378 | return result 379 | 380 | def uniqueValues(con, ds, col): 381 | currDf = _getCurrentDataframe(ds) 382 | result = currDf[col].nunique() 383 | return result 384 | 385 | def makeList(con, ds, limit=None): 386 | 387 | currDf = _getCurrentDataframe(ds) 388 | if limit != None: 389 | return currDf.to_dict('records')[:limit] 390 | else: 391 | return currDf.to_dict('records') 392 | 393 | # Returns a new dataframe filtered by the given value/s for the given column/s 394 | 395 | def filterBy(con, ds, cols, filterByThis): 396 | currDf = _getCurrentDataframe(ds) 397 | 398 | # For multi-column filtering 399 | 400 | if "," in filterByThis: 401 | filterByThis = filterByThis.split(",") 402 | cols = cols.split(",") 403 | 404 | queryStr = '' 405 | for i in range(0, len(cols)): 406 | join = ' and ' 407 | if i == len(cols) - 1: 408 | join = '' 409 | queryStr = queryStr + cols[i] + ' == "' + filterByThis[i] + '"' + join 410 | 411 | result = currDf.query(queryStr) 412 | return result 413 | 414 | # For single column filtering 415 | 416 | else: 417 | result = currDf.loc[currDf[cols] == filterByThis] 418 | return result 419 | 420 | -------------------------------------------------------------------------------- /tests/expenses.csv: -------------------------------------------------------------------------------- 1 | Name,Home Base,Travelling Allowance,Overseas Travel,Domestic Scheduled Fares,Charter,Car Costs,Office Facilities,Office Administrative Costs,Telecommunications,Family Travel Costs Dr Andrew Southcott,Adelaide,0,0,0,0,0,1638,0,0,0 Dr Anne Aly MP,Perth,10191,0,17253,0,5847,118645,29801,1836,8603 Dr Dennis Jensen,Perth,0,0,0,0,2199,9212,49244,54,1562 Dr Jim Chalmers MP,Logan,11222,0,37709,0,9415,66809,102713,3524,679 Dr John McVeigh MP,Toowoomba,10867,0,11129,0,3836,48995,12378,1601,13811 Dr Mike Freelander MP,Sydney,6894,0,0,0,2806,92917,48499,1563,350 Mr Adam Bandt MP,Melbourne,6900,0,5562,0,11320,85580,112849,4080,598 Mr Andrew Broad MP,Red Cliffs,14290,0,10095,8289,8211,68806,113767,7454,3541 Mr Andrew Gee MP,Orange,9372,0,0,0,10282,87356,24374,2180,0 Mr Andrew Giles MP,Clifton Hill,10536,0,16680,0,11579,72477,58435,2013,0 Mr Andrew Hastie MP,Perth,9654,0,26790,0,11879,75577,49216,2950,10309 Mr Andrew Laming MP,Cleveland,3580,7260,15999,0,5643,47932,175928,2952,9523 Mr Andrew Nikolic AM CSC,Launceston,0,0,0,0,1210,25075,68403,1749,0 Mr Andrew Wallace MP,Alexandra Headland,11663,0,15985,0,4552,50519,32584,1890,9713 Mr Andrew Wilkie MP,Hobart,10163,0,12810,0,8891,61999,99424,4396,0 Mr Ben Morton MP,Perth,10717,0,27517,0,6255,128752,45865,2209,17737 Mr Bert van Manen MP,Cornubia,9772,0,13681,0,8824,50237,164469,2917,3784 Mr Brett Whiteley,Squeaking Point,0,0,0,2688,5290,3095,41067,2003,0 Mr Brian Mitchell MP,Sorell,9363,0,13991,0,5968,32077,19498,3092,6461 Mr Chris Crewther MP,Frankston,9623,0,14875,0,8957,42718,55141,3734,7965 Mr Chris Hayes MP,Leumeah,12114,0,334,0,8450,57570,172041,3168,2746 Mr Clive Palmer,Yaroomba,0,0,0,0,0,2260,0,0,0 Mr Craig Kelly MP,Sydney,11037,0,1452,0,3481,57009,139645,3169,0 Mr David Coleman MP,Cronulla,7728,0,1124,0,2653,42664,56154,4011,0 Mr David Littleproud MP,Warwick,23984,0,13830,40061,11652,52018,19676,2283,4958 Mr Eric Hutchinson,Launceston,516,0,66,2364,3018,4146,72566,3436,0 Mr Ewen Jones,Townsville,0,0,924,155,1574,4170,70582,360,0 Mr George Christensen MP,Mackay,12806,0,19722,0,10596,68822,91374,1834,0 Mr Glenn Lazarus,Brisbane,0,0,1157,0,3932,-59010,97453,0,1148 Mr Graham Perrett MP,Moorooka,6339,580,16821,0,10501,111758,132773,2030,-7202 Mr Ian Goodenough MP,Perth,11437,0,22558,0,8678,91877,168916,3038,4037 Mr Jason Falinski MP,Sydney,7995,0,1725,0,637,83214,37703,2404,4171 Mr Jason Wood MP,Mount Dandenong,10206,0,0,0,5132,68066,128400,2721,0 Mr Joe Bullock,Perth,0,0,0,0,0,253,0,0,1509 Mr John Alexander OAM MP,Sydney,7728,0,0,0,2791,116986,91407,2958,334 Mr John Madigan,Ballarat,2195,0,0,0,1825,3280,19699,-1499,0 Mr Josh Wilson MP,Fremantle,10994,0,40601,0,6650,66854,59125,2735,12706 Mr Julian Hill MP,Notting Hill,11028,0,14614,0,8886,73180,129332,4627,2699 Mr Julian Leeser MP,Pennant Hills,8550,0,2105,0,3291,64919,105680,1985,2104 Mr Ken O'Dowd MP,Gladstone,17439,0,22159,3597,10847,83336,110303,4193,370 Mr Kevin Hogan MP,Lismore,11523,0,13091,0,16937,53988,127301,4354,5443 Mr Llew O'Brien MP,Gympie,11658,0,11352,0,9487,37432,74454,2050,10247 Mr Luke Gosling OAM MP,Darwin,10724,0,27905,0,3515,46985,37814,1647,5192 Mr Luke Howarth MP,Clontarf,9654,0,11718,0,7822,50214,155864,3566,3193 Mr Luke Simpkins,Perth,0,0,0,0,1572,4662,64304,93,0 Mr Mark Coulton MP,Warialda,19466,0,7564,63324,19132,74759,84070,3550,4775 Mr Matt Keogh MP,Kelmscott,11162,0,38817,0,3273,68680,125034,2477,3133 Mr Matt Williams,Adelaide,0,0,0,0,947,2070,85591,3603,0 Mr Milton Dick MP,Brisbane,11288,0,22465,0,8924,62158,38178,2080,5378 Mr Nick Champion MP,Adelaide,9350,0,21867,0,11162,54823,105192,4692,8277 Mr Nickolas Varvaris,Blakehurst,0,0,0,0,0,4647,18738,77,0 Mr Pat Conroy MP,Newcastle,12429,0,10078,0,11262,59858,126227,2879,0 Mr Peter Khalil MP,Melbourne,9648,0,12620,0,9483,34577,94079,4416,13207 Mr Rick Wilson MP,Albany,17776,0,29487,44415,28841,101650,142399,6395,14146 Mr Ricky Muir,Denison,1660,0,0,0,1691,6083,1291,-372,0 Mr Rob Mitchell MP,Melbourne,7173,0,11793,0,13754,85423,136096,4381,1459 Mr Robert Simms,Adelaide,397,0,0,0,0,1425,18615,960,0 Mr Ross Hart MP,Launceston,11701,0,12997,0,7871,74271,18333,2236,5097 Mr Ross Vasta MP,Brisbane,8553,0,13588,0,2254,45368,162122,2782,3910 Mr Rowan Ramsey MP,Kimba,25158,0,21615,25803,20144,67236,86881,7662,3957 Mr Russell Broadbent MP,Pakenham,8553,0,8751,0,13086,40927,46036,2669,1377 Mr Russell Matheson,Blairmount,0,0,0,0,128,3845,167846,0,0 Mr Scott Buchholz MP,Boonah,9586,0,20063,0,12490,49170,108928,1879,740 Mr Sean Edwards,Clare,0,0,928,0,598,5120,38170,1940,0 Mr Stephen Jones MP,Wollongong,12672,0,15439,0,10817,59459,74407,2536,0 Mr Steve Georganas MP,Adelaide,10597,0,18790,0,7323,52110,42742,65,0 Mr Steve Irons MP,Perth,9933,0,22190,0,1074,68651,122931,2271,4599 Mr Ted O'Brien MP,Buderim,9378,0,8954,0,2851,64659,22369,1482,2447 Mr Tim Hammond MP,Perth,9542,0,37063,0,5993,66030,33220,1690,10234 Mr Tim Watts MP,Melbourne,6348,0,12957,0,6973,52458,82301,2233,2497 Mr Tim Wilson MP,Brighton,7711,0,23037,0,4414,67202,89626,3745,2755 Mr Tony Pasin MP,Mount Gambier,13875,0,17281,14582,18345,116411,107156,8663,6697 Mr Tony Zappia MP,Adelaide,11130,0,7548,0,2169,63663,122582,3910,1064 Mr Trent Zimmerman MP,Sydney,8829,0,2337,0,7618,136505,87747,1733,0 Mr Trevor Evans MP,Brisbane,8823,0,14517,0,1550,53774,52686,1538,3406 Mr Zhenya Wang,Perth,2406,0,2699,2182,244,4376,34254,145,1426 Mrs Ann Sudmalis MP,Nowra,5520,0,0,0,8246,44957,58909,2420,0 Mrs Karen McNamara,Hamlyn Terrace,0,0,0,0,1869,8724,112942,784,0 Mrs Louise Markus,Riverstone,0,0,0,0,562,2903,63371,159,0 Mrs Lucy Wicks MP,Gosford,8001,0,1275,0,3222,73014,169690,3006,1078 Mrs Natasha Griggs,Darwin,0,0,0,0,0,4067,106853,771,0 Ms Anna Burke,Melbourne,0,0,581,0,0,13847,29270,-68,-1725 Ms Anne McEwen,Adelaide,0,0,0,0,2068,5670,28099,2492,0 Ms Anne Stanley MP,Sydney,9645,0,0,0,3545,45821,35586,2106,0 Ms Cathy McGowan AO MP,Indigo Valley,8014,0,49,0,10977,58383,89019,5342,0 Ms Cathy O'Toole MP,Townsville,8538,0,10353,0,4990,41139,8594,1080,6133 Ms Clare O'Neil MP,Melbourne,2484,0,5280,0,1889,75664,107355,2397,1888 Ms Emma Husar MP,Penrith,9093,0,911,0,7935,84195,74056,978,581 Ms Emma McBride MP,The Entrance,8556,0,6650,0,3476,45125,34339,1627,0 Ms Fiona Scott,Penrith,0,0,0,0,2593,2113,22213,95,0 Ms Gai Brodtmann MP,Canberra,1366,12360,8186,0,6477,63284,73023,2343,0 Ms Jill Hall,Belmont,0,0,0,0,169,182,646,0,0 Ms Joanna Lindgren,Brisbane,582,0,1366,0,1187,8645,13582,971,1294 Ms Joanne Ryan MP,Werribee,8823,0,12822,0,6796,70498,22724,2215,0 Ms Julia Banks MP,Melbourne,9927,0,14699,0,7257,22189,5938,2647,4511 Ms Julie Owens MP,Parramatta,6342,0,794,0,2601,93712,98308,3705,0 Ms Justine Keay MP,Devonport,12017,0,21234,0,10283,33450,22335,3005,3598 Ms Lisa Chesters MP,Bendigo,9941,0,9129,0,12801,57116,91313,3888,0 Ms Madeleine King MP,Rockingham,12987,0,42167,0,3363,76475,105918,2027,16752 Ms Maria Vamvakinou MP,Northcote,5520,0,9887,0,8441,44624,34893,3615,0 Ms Melissa Price MP,Perth,22987,0,37502,46676,14972,98013,138423,4608,10365 Ms Meryl Swanson MP,Buchanan,9938,0,7821,0,10630,64878,70120,3338,5842 Ms Michelle Landry MP,Yeppoon,14197,0,18215,5630,8531,81313,108956,4016,1790 Ms Michelle Rowland MP,Glenwood,11748,0,18757,0,23974,62521,118960,3737,8418 Ms Nicolle Flint MP,Adelaide,9214,0,13135,0,5713,35414,30809,891,0 Ms Nola Marino MP,Bunbury,10481,6907,37593,0,22476,67733,152894,3019,0 Ms Nova Peris OAM,Darwin,429,0,-1911,18675,2727,8153,19327,818,-422 Ms Rebekha Sharkie MP,Birdwood,8550,0,9678,0,7894,41149,36363,1622,773 Ms Sarah Henderson MP,Barwon Heads,8004,0,11987,0,14601,53696,99269,3719,816 Ms Sharon Claydon MP,Newcastle,9657,0,4123,0,2030,55693,64848,3179,0 Ms Susan Lamb MP,Dakabin,10433,3424,6258,0,1829,40297,3226,2023,6077 Ms Susan Templeman MP,Hazelbrook,10019,0,3219,0,6377,74772,26387,1921,121 Ms Terri Butler MP,Brisbane,11206,0,25764,0,9379,76254,118017,2696,0 Senator Alex Gallacher,Adelaide,11162,6907,15715,0,11987,34250,40585,3477,6322 Senator Anne Urquhart,Ulverstone,15051,0,27153,0,12859,33913,69412,5250,0 Senator Anthony Chisholm,Brisbane,8561,0,25053,0,6362,23980,1493,1116,8147 Senator Barry O'Sullivan,Toowoomba,16840,-6067,15055,18750,1153,54095,79463,4250,8679 Senator Brian Burston,Coal Point,10862,0,1224,0,4480,29758,2534,1326,0 Senator Bridget McKenzie,Ballarat,23583,0,25362,0,19179,69698,67387,2740,5144 Senator Carol Brown,Hobart,11045,0,19415,0,10884,48966,25307,5112,2542 Senator Catryna Bilyk,Hobart,10319,0,14382,0,12807,62509,91522,4023,1541 Senator Chris Back,Perth,13019,0,39818,3400,10062,63327,9086,3085,8434 Senator Chris Ketter,Brisbane,13923,0,24318,5771,12892,50755,34158,2578,4760 Senator Claire Moore,Brisbane,18725,189,48914,7381,14468,59178,58569,4087,0 Senator Cory Bernardi,Adelaide,2705,76637,11517,0,9317,61449,32837,2838,3650 Senator David Bushby,Hobart,18847,0,25347,0,22114,44304,67742,3902,6082 Senator David Fawcett,Adelaide,8685,0,25354,711,11374,38399,26907,1577,1149 Senator David Leyonhjelm,Sydney,6634,0,6683,0,4393,57174,84607,2398,0 Senator Dean Smith,Perth,12918,0,35259,9218,13700,91352,48797,6270,0 Senator Deborah O'Neill,Gosford,15492,0,8519,-11844,5791,67685,50710,4222,1239 Senator Derryn Hinch,Melbourne,7992,0,20854,0,4393,54356,2119,3681,0 Senator Gavin Marshall,Melbourne,10779,0,16553,178,9905,59122,37260,2465,847 Senator Glenn Sterle,Perth,13165,6907,39731,2961,13993,54341,60707,3771,0 Senator Helen Polley,Launceston,18302,0,31115,0,16208,46253,75353,5162,2214 Senator Jacqui Lambie,Burnie,18746,0,34144,0,12350,33728,51927,3474,0 Senator James Paterson,Melbourne,11314,0,5878,0,10843,21756,35163,1676,566 Senator Jane Hume,Melbourne,12276,0,12887,0,9048,16422,11334,2413,0 Senator Janet Rice,Melbourne,10700,0,7749,0,1865,57424,91719,2186,0 Senator Jenny McAllister,Sydney,10135,0,13491,0,9992,59238,38266,1980,2463 Senator John Williams,Inverell,18484,0,17409,5679,16363,39218,30214,3774,2692 Senator Jonathon Duniam,Hobart,13999,0,19657,0,7872,7987,5397,1664,3631 Senator Katy Gallagher,Canberra,1554,0,6071,0,9390,47373,23433,1276,0 Senator Kimberley Kitching,Melbourne,3588,0,4966,0,2597,10668,98,0,0 Senator Larissa Waters,Brisbane,9535,0,26419,2160,3002,54180,71253,2352,0 Senator Lee Rhiannon,Sydney,10369,0,10197,0,4329,90943,57805,3462,0 Senator Linda Reynolds CSC,Perth,14617,0,36908,0,10905,87905,65806,2952,6587 Senator Louise Pratt,Maylands,13939,0,45469,0,7249,44902,8816,2274,3963 Senator Malarndirri McCarthy,Darwin,15331,0,24955,10227,14063,48699,3883,1396,2048 Senator Malcolm Roberts,Brisbane,12308,0,14214,0,7248,31656,2513,2290,3025 Senator Murray Watt,Brisbane,11357,0,22060,142,2680,51479,19399,1710,0 Senator Nick McKim,Hobart,9823,0,13249,0,8657,67353,72586,3409,0 Senator Nick Xenophon,Adelaide,10320,0,12485,281,1238,52347,15423,5094,0 Senator Patrick Dodson,Broome,27926,0,29574,2982,2528,135002,5007,5577,0 Senator Pauline Hanson,Brisbane,8372,0,11594,0,2517,35798,7814,2358,1756 Senator Peter Whish-Wilson,Launceston,12074,0,10689,0,10132,37904,48778,4168,2266 Senator Rachel Siewert,Perth,13299,0,52603,1704,10038,44717,34504,3595,411 Senator Richard Di Natale,Deans Marsh,10972,0,23758,18960,25527,119450,81689,4175,3181 Senator Sam Dastyari,Sydney,11461,0,12894,0,6584,95851,31937,2476,456 Senator Sarah Hanson-Young,Adelaide,15178,0,36658,1293,14150,62510,77999,2748,1627 Senator Scott Ludlam,Perth,6025,0,14401,0,835,73519,71609,4102,0 Senator Skye Kakoschke-Moore,Adelaide,10255,0,9019,0,1360,50825,12560,3177,1889 Senator Stirling Griff,Adelaide,10727,0,5661,0,871,34945,14095,1235,2157 Senator Sue Lines,Perth,8439,0,32048,0,9989,123088,60345,3199,12712 Senator the Hon Anne Ruston,Renmark,26757,0,42428,5172,22800,33698,46007,3215,4326 Senator the Hon Arthur Sinodinos AO,Sydney,18701,0,18803,0,14905,224421,37878,1911,0 Senator the Hon Concetta Fierravanti-Wells,Sydney,11198,33329,26090,0,17906,175182,38403,1242,3630 Senator the Hon Don Farrell,Adelaide,12710,0,14359,0,5648,66200,7797,1822,8689 Senator the Hon Doug Cameron,Blaxland,16666,0,19497,-2679,14863,70450,66754,2912,0 Senator the Hon Eric Abetz,Hobart,6582,0,18692,5355,13650,69210,73702,7190,3091 Senator the Hon Fiona Nash,Young,25968,0,17953,24171,18432,148373,75747,1698,45 Senator the Hon George Brandis QC,Brisbane,24615,46094,62942,0,29565,122685,36077,2051,0 Senator the Hon Ian Macdonald,Ayr,19983,7632,29919,14454,17002,54504,58076,2434,12747 Senator the Hon Jacinta Collins,Melbourne,10929,0,16292,0,17404,81418,19329,3184,11160 Senator the Hon James McGrath,Flaxton,30928,15506,44526,0,28494,40036,65289,2384,3507 Senator the Hon Kim Carr,Melbourne,13915,0,23761,0,21502,40019,54557,2411,1460 Senator the Hon Lisa Singh,Hobart,3167,61902,5885,0,7537,55673,71338,4013,0 Senator the Hon Marise Payne,Sydney,4785,206138,3391,0,24416,188773,22783,1616,842 Senator the Hon Mathias Cormann,Perth,17209,92554,60205,3254,17574,137420,11642,2216,24210 Senator the Hon Matthew Canavan,Pacific Heights,25486,0,57701,5068,29034,47028,73374,4581,7653 Senator the Hon Michaelia Cash,Perth,28617,0,60197,0,15395,146652,31287,2238,7374 Senator the Hon Mitch Fifield,Melbourne,23321,0,56048,0,26977,100381,42384,3253,236 Senator the Hon Nigel Scullion,Darwin,40206,0,55662,79150,27802,110584,17637,3240,14598 Senator the Hon Penny Wong,Adelaide,16005,17422,43617,0,21311,86638,29437,3191,6290 Senator the Hon Scott Ryan,Melbourne,17814,315,35185,0,17858,105497,48898,3242,5248 Senator the Hon Simon Birmingham,Adelaide,19262,0,48731,0,17704,73284,57726,3611,4031 Senator the Hon Stephen Parry,Sandford,19342,0,27069,143,18881,95026,75745,7970,10558 Senator the Hon Zed Seselja,Canberra,10871,0,27426,0,17756,114653,53255,3059,0 The Hon Alan Griffin,Melbourne,0,0,0,0,0,7491,0,0,0 The Hon Alan Tudge MP,Wantirna South,16290,6438,48377,5825,11291,102574,113674,4543,309 The Hon Alannah MacTiernan,Perth,0,0,0,231,0,135,-9,0,0 The Hon Alex Hawke MP,Castle Hill,12932,0,3514,0,11071,78214,62967,4223,2364 The Hon Amanda Rishworth MP,Adelaide,10256,0,36807,0,19650,37662,85273,3839,1679 The Hon Andrew Robb AO,Brighton,0,-286,0,0,0,2800,-81,0,0 The Hon Angus Taylor MP,Goulburn,16493,0,18522,0,18849,58670,183050,7485,0 The Hon Anthony Albanese MP,Sydney,13485,0,43482,0,22686,48246,125309,3362,7184 The Hon Anthony Byrne MP,Melbourne,7170,0,8502,0,10282,82320,120772,3528,1302 The Hon Barnaby Joyce MP,Tamworth,23587,0,24003,61835,29169,106458,94970,3147,20789 The Hon Bernie Ripoll,Ipswich,0,0,0,0,286,2240,-167,0,0 The Hon Bill Heffernan,Junee,0,0,0,0,0,182,5,0,0 The Hon Bill Shorten MP,Melbourne,20505,35213,72400,0,177736,128857,125976,4094,16611 The Hon Bob Baldwin,Chisholm,0,0,-308,0,0,2474,-210,0,0 The Hon Bob Katter MP,Charters Towers,20325,0,34380,61199,58613,87666,142989,8373,6922 The Hon Brendan O'Connor MP,Melbourne,19835,0,52664,0,30866,53295,107509,3365,7382 The Hon Bronwyn Bishop,Sydney,0,0,40,0,0,1370,34,0,0 The Hon Bruce Billson,Mornington,0,0,326,0,0,129,-309,0,0 The Hon Bruce Scott,Roma,0,6740,0,0,0,5104,976,-20,0 The Hon Catherine King MP,Ballarat,10237,0,34926,0,25223,58842,229560,4286,0 The Hon Chris Bowen MP,Sydney,7442,5316,21752,0,25550,75351,116794,3133,0 The Hon Christian Porter MP,Yanchep,19683,0,69032,-816,16947,101581,86967,2720,4151 The Hon Christopher Pyne MP,Adelaide,18551,100496,49550,0,26756,87747,88342,3275,2780 The Hon Craig Laundy MP,Sydney,12413,0,16539,0,10947,94707,70798,1879,857 The Hon Damian Drum MP,Shepparton,9770,0,7419,0,9659,55044,29042,3791,3453 The Hon Dan Tehan MP,Hamilton,27661,80039,25789,0,17479,84182,114902,11991,5169 The Hon Darren Chester MP,Lakes Entrance,29916,15979,20131,58298,32485,86822,133400,6680,2605 The Hon David Feeney MP,Melbourne,9375,0,15321,0,9103,54925,180379,3926,0 The Hon David Johnston,Perth,0,0,1947,0,1116,3910,37131,90,0 The Hon Dr Andrew Leigh MP,Canberra,5173,0,14462,0,5134,56119,165672,2612,0 The Hon Dr David Gillespie MP,Wauchope,22813,0,37436,0,20727,72068,87436,4795,9236 The Hon Dr Mike Kelly AM MP,Queanbeyan,5597,0,1662,0,7299,88223,15159,3762,0 The Hon Dr Peter Hendy,Queanbeyan,2576,0,0,0,1885,7164,42037,1689,0 The Hon Dr Sharman Stone,Shepparton,0,0,0,0,0,621,3639,0,0 The Hon Ed Husic MP,Sydney,11149,0,13131,0,14267,61131,71203,1887,0 The Hon Gary Gray AO,Perth,0,0,0,292,1281,735,111,0,0 The Hon Greg Hunt MP,Mt Martha,17418,105148,24843,0,36207,84651,97331,3036,5330 The Hon Ian Macfarlane,Toowoomba,0,0,0,0,0,4112,0,0,0 The Hon Jamie Briggs,Aldgate,0,0,431,0,1554,7329,56574,1809,0 The Hon Jan McLucas,Cairns,0,0,4301,-2679,0,1674,-55,0,0 The Hon Jane Prentice MP,Brisbane,14963,0,28670,0,15161,66408,82275,2163,6290 The Hon Jason Clare MP,Bankstown,7709,0,35759,0,7995,46820,99298,2704,669 The Hon Jenny Macklin MP,Melbourne,6461,0,18715,0,11459,66332,127084,3858,1420 The Hon Joe Hockey,Sydney,0,0,0,0,0,0,57,0,0 The Hon Joe Ludwig,Calamvale,0,0,0,0,121,455,12357,0,0 The Hon Joel Fitzgibbon MP,Cessnock,16003,0,14128,0,15852,60913,72503,3330,0 The Hon John Cobb,Molong,0,0,0,0,0,3544,239,0,0 The Hon Josh Frydenberg MP,Melbourne,14501,79918,35349,7905,24237,112928,78225,2736,1730 The Hon Julie Bishop MP,Subiaco,25052,304364,63131,0,34110,199491,104975,1499,12472 The Hon Julie Collins MP,Hobart,10056,0,23360,0,10360,54999,108249,3912,0 The Hon Justine Elliot MP,Tweed Heads,10226,0,12512,0,12086,108033,83594,3695,1307 The Hon Karen Andrews MP,Gold Coast,15173,0,32913,0,13885,58426,80472,3208,5527 The Hon Kate Ellis MP,Adelaide,7452,0,18646,0,14499,65350,174638,2907,2179 The Hon Keith Pitt MP,Bundaberg,21774,36078,55988,7535,15358,35932,58352,3345,14128 The Hon Kelly O'Dwyer MP,Melbourne,12637,0,32562,0,14434,97288,155857,3986,1165 The Hon Kelvin Thomson,Melbourne,0,0,0,0,0,1212,113,0,0 The Hon Ken Wyatt AM MP,South Perth,13708,23990,72779,0,22794,80988,146238,3379,9612 The Hon Kevin Andrews MP,Melbourne,12463,0,22166,0,13271,52174,64010,2934,6267 The Hon Laurie Ferguson,Sydney,0,0,0,0,0,2261,18103,0,0 The Hon Linda Burney MP,Sydney,10609,0,17447,0,4775,64207,25237,1541,0 The Hon Luke Hartsuyker MP,Coffs Harbour,17362,23377,29178,0,13010,52261,158713,3506,3156 The Hon Mal Brough,Sunshine Coast,0,0,0,0,0,-6903,-38,0,0 The Hon Malcolm Turnbull MP,Sydney,15238,509620,0,0,94313,157016,83562,2028,8176 The Hon Mark Butler MP,Adelaide,10602,0,35013,0,14262,75386,140569,5917,0 The Hon Mark Dreyfus QC MP,Melbourne,9628,0,32476,0,14704,75377,129806,3603,1017 The Hon Matt Thistlethwaite MP,Sydney,6900,0,9251,0,10760,132352,104910,3263,0 The Hon Melissa Parke,Fremantle,0,0,0,0,0,1197,0,0,0 The Hon Michael Danby MP,Melbourne,6165,0,15500,0,10813,96721,35291,3005,3548 The Hon Michael Keenan MP,Perth,21160,71967,76787,0,21954,141415,73574,1071,6666 The Hon Michael McCormack MP,Wagga Wagga,29371,0,34911,2420,17080,46142,75530,3178,0 The Hon Michael Ronaldson,Lake Wendouree,0,-45,0,0,0,0,0,0,0 The Hon Michael Sukkar MP,Blackburn,8553,0,15354,0,11021,40593,137907,2161,2152 The Hon Paul Fletcher MP,Sydney,8326,35624,13744,0,14037,100972,85879,2020,1650 The Hon Peter Dutton MP,Camp Mountain,16991,48262,46549,0,15187,119500,85556,1551,10881 The Hon Philip Ruddock,Sydney,0,0,0,0,-511,245,83,0,0 The Hon Richard Colbeck,Devonport,1200,0,1754,1165,3402,4718,57172,2380,0 The Hon Richard Marles MP,Geelong,7528,2318,36918,0,27288,58646,95646,3887,3682 The Hon Scott Morrison MP,Sydney,17238,60309,19140,0,21242,251488,72887,1645,0 The Hon Sharon Bird MP,Wollongong,10765,0,1101,0,7595,85544,59529,1604,0 The Hon Shayne Neumann MP,Ipswich,8447,0,22303,0,14815,65039,56771,3200,0 The Hon Stephen Conroy,Melbourne,3748,4386,16866,0,16530,30349,68771,2177,0 The Hon Steven Ciobo MP,Gold Coast,13822,417080,29902,0,15529,65881,144020,2391,6577 The Hon Stuart Robert MP,Gold Coast,10693,0,25955,0,7163,51618,113433,9943,1378 The Hon Sussan Ley MP,Albury,35613,12008,43272,51684,29239,191891,83323,5910,2727 The Hon Tanya Plibersek MP,Sydney,6444,0,43224,0,26580,14534,99219,4479,7940 The Hon Teresa Gambaro,Brisbane,0,0,0,0,0,-462,0,0,0 The Hon Tony Abbott MP,Sydney,15135,2726,36729,0,14563,75214,84138,3310,2758 The Hon Tony Burke MP,Sydney,9253,0,20461,0,22058,122773,101605,2568,1537 The Hon Tony Smith MP,Melbourne,15448,32080,25910,0,15747,111219,100936,3913,3689 The Hon Warren Entsch MP,Cairns,15860,0,18680,26468,4948,92851,105482,3782,4545 The Hon Warren Snowdon MP,Alice Springs,38401,13625,47710,44814,57887,95506,88445,9855,1152 The Hon Warren Truss,Maryborough,0,0,0,0,0,4449,12,0,0 The Hon Wayne Swan MP,Brisbane,9102,0,29199,0,12078,50326,91576,2645,1649 The Hon Wyatt Roy,Beachmere,0,0,618,0,3778,3088,26480,670,0 -------------------------------------------------------------------------------- /tests/date-test.csv: -------------------------------------------------------------------------------- 1 | Product code,Bureau of Meteorology station number,Year,Month,Day,Maximum temperature (Degree C),Days of accumulation of maximum temperature,Quality,Date1,Date2,Date3,Date4 IDCJAC0010,66062,1859,1,1,24.4,,Y,1/01/1959,"Thursday, 1 January 59",01-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,2,24.4,1,Y,2/01/1959,"Friday, 2 January 59",02-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,3,24.2,1,Y,3/01/1959,"Saturday, 3 January 59",03-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,4,24.7,1,Y,4/01/1959,"Sunday, 4 January 59",04-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,5,24.6,1,Y,5/01/1959,"Monday, 5 January 59",05-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,6,22.2,1,Y,6/01/1959,"Tuesday, 6 January 59",06-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,7,24.7,1,Y,7/01/1959,"Wednesday, 7 January 59",07-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,8,25.1,1,Y,8/01/1959,"Thursday, 8 January 59",08-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,9,33.9,1,Y,9/01/1959,"Friday, 9 January 59",09-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,10,27.2,1,Y,10/01/1959,"Saturday, 10 January 59",10-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,11,28.6,1,Y,11/01/1959,"Sunday, 11 January 59",11-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,12,27.3,1,Y,12/01/1959,"Monday, 12 January 59",12-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,13,24.1,1,Y,13/01/1959,"Tuesday, 13 January 59",13-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,14,25.4,1,Y,14/01/1959,"Wednesday, 14 January 59",14-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,15,23.8,1,Y,15/01/1959,"Thursday, 15 January 59",15-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,16,24.4,1,Y,16/01/1959,"Friday, 16 January 59",16-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,17,33.1,1,Y,17/01/1959,"Saturday, 17 January 59",17-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,18,36.9,1,Y,18/01/1959,"Sunday, 18 January 59",18-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,19,25.8,1,Y,19/01/1959,"Monday, 19 January 59",19-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,20,23.4,1,Y,20/01/1959,"Tuesday, 20 January 59",20-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,21,23.8,1,Y,21/01/1959,"Wednesday, 21 January 59",21-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,22,23.4,1,Y,22/01/1959,"Thursday, 22 January 59",22-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,23,26.9,1,Y,23/01/1959,"Friday, 23 January 59",23-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,24,25.6,1,Y,24/01/1959,"Saturday, 24 January 59",24-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,25,24.6,1,Y,25/01/1959,"Sunday, 25 January 59",25-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,26,24.8,1,Y,26/01/1959,"Monday, 26 January 59",26-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,27,24.9,1,Y,27/01/1959,"Tuesday, 27 January 59",27-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,28,25.9,1,Y,28/01/1959,"Wednesday, 28 January 59",28-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,29,25.6,1,Y,29/01/1959,"Thursday, 29 January 59",29-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,30,22.4,1,Y,30/01/1959,"Friday, 30 January 59",30-Jan-59,Jan-59 IDCJAC0010,66062,1859,1,31,20.6,1,Y,31/01/1959,"Saturday, 31 January 59",31-Jan-59,Jan-59 IDCJAC0010,66062,1859,2,1,22.3,1,Y,1/02/1959,"Sunday, 1 February 59",01-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,2,22.7,1,Y,2/02/1959,"Monday, 2 February 59",02-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,3,23.3,1,Y,3/02/1959,"Tuesday, 3 February 59",03-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,4,25,1,Y,4/02/1959,"Wednesday, 4 February 59",04-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,5,26.9,1,Y,5/02/1959,"Thursday, 5 February 59",05-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,6,27.2,1,Y,6/02/1959,"Friday, 6 February 59",06-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,7,35.6,1,Y,7/02/1959,"Saturday, 7 February 59",07-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,8,32.3,1,Y,8/02/1959,"Sunday, 8 February 59",08-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,9,26.8,1,Y,9/02/1959,"Monday, 9 February 59",09-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,10,26.2,1,Y,10/02/1959,"Tuesday, 10 February 59",10-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,11,23.9,1,Y,11/02/1959,"Wednesday, 11 February 59",11-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,12,32.8,1,Y,12/02/1959,"Thursday, 12 February 59",12-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,13,28.6,1,Y,13/02/1959,"Friday, 13 February 59",13-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,14,25.4,1,Y,14/02/1959,"Saturday, 14 February 59",14-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,15,26.5,1,Y,15/02/1959,"Sunday, 15 February 59",15-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,16,22.3,1,Y,16/02/1959,"Monday, 16 February 59",16-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,17,20.4,1,Y,17/02/1959,"Tuesday, 17 February 59",17-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,18,19.9,1,Y,18/02/1959,"Wednesday, 18 February 59",18-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,19,23.3,1,Y,19/02/1959,"Thursday, 19 February 59",19-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,20,24.5,1,Y,20/02/1959,"Friday, 20 February 59",20-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,21,23.6,1,Y,21/02/1959,"Saturday, 21 February 59",21-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,22,25.9,1,Y,22/02/1959,"Sunday, 22 February 59",22-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,23,23.3,1,Y,23/02/1959,"Monday, 23 February 59",23-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,24,25,1,Y,24/02/1959,"Tuesday, 24 February 59",24-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,25,26.7,1,Y,25/02/1959,"Wednesday, 25 February 59",25-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,26,25,1,Y,26/02/1959,"Thursday, 26 February 59",26-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,27,23,1,Y,27/02/1959,"Friday, 27 February 59",27-Feb-59,Feb-59 IDCJAC0010,66062,1859,2,28,22.4,1,Y,28/02/1959,"Saturday, 28 February 59",28-Feb-59,Feb-59 IDCJAC0010,66062,1859,3,1,24.1,1,Y,1/03/1959,"Sunday, 1 March 59",01-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,2,28.2,1,Y,2/03/1959,"Monday, 2 March 59",02-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,3,25.3,1,Y,3/03/1959,"Tuesday, 3 March 59",03-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,4,23.8,1,Y,4/03/1959,"Wednesday, 4 March 59",04-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,5,22.8,1,Y,5/03/1959,"Thursday, 5 March 59",05-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,6,25,1,Y,6/03/1959,"Friday, 6 March 59",06-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,7,23.1,1,Y,7/03/1959,"Saturday, 7 March 59",07-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,8,26,1,Y,8/03/1959,"Sunday, 8 March 59",08-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,9,23.8,1,Y,9/03/1959,"Monday, 9 March 59",09-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,10,30.3,1,Y,10/03/1959,"Tuesday, 10 March 59",10-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,11,25.7,1,Y,11/03/1959,"Wednesday, 11 March 59",11-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,12,26.9,1,Y,12/03/1959,"Thursday, 12 March 59",12-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,13,24.6,1,Y,13/03/1959,"Friday, 13 March 59",13-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,14,22,1,Y,14/03/1959,"Saturday, 14 March 59",14-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,15,22.5,1,Y,15/03/1959,"Sunday, 15 March 59",15-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,16,18.8,1,Y,16/03/1959,"Monday, 16 March 59",16-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,17,21.3,1,Y,17/03/1959,"Tuesday, 17 March 59",17-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,18,22.6,1,Y,18/03/1959,"Wednesday, 18 March 59",18-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,19,22.9,1,Y,19/03/1959,"Thursday, 19 March 59",19-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,20,23.1,1,Y,20/03/1959,"Friday, 20 March 59",20-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,21,24.9,1,Y,21/03/1959,"Saturday, 21 March 59",21-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,22,23.2,1,Y,22/03/1959,"Sunday, 22 March 59",22-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,23,24,1,Y,23/03/1959,"Monday, 23 March 59",23-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,24,23.6,1,Y,24/03/1959,"Tuesday, 24 March 59",24-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,25,24.1,1,Y,25/03/1959,"Wednesday, 25 March 59",25-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,26,23.4,1,Y,26/03/1959,"Thursday, 26 March 59",26-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,27,23.3,1,Y,27/03/1959,"Friday, 27 March 59",27-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,28,23.6,1,Y,28/03/1959,"Saturday, 28 March 59",28-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,29,23.1,1,Y,29/03/1959,"Sunday, 29 March 59",29-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,30,23.2,1,Y,30/03/1959,"Monday, 30 March 59",30-Mar-59,Mar-59 IDCJAC0010,66062,1859,3,31,30.4,1,Y,31/03/1959,"Tuesday, 31 March 59",31-Mar-59,Mar-59 IDCJAC0010,66062,1859,4,1,28,1,Y,1/04/1959,"Wednesday, 1 April 59",01-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,2,22.8,1,Y,2/04/1959,"Thursday, 2 April 59",02-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,3,31.1,1,Y,3/04/1959,"Friday, 3 April 59",03-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,4,26.2,1,Y,4/04/1959,"Saturday, 4 April 59",04-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,5,23.4,1,Y,5/04/1959,"Sunday, 5 April 59",05-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,6,26.4,1,Y,6/04/1959,"Monday, 6 April 59",06-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,7,23.1,1,Y,7/04/1959,"Tuesday, 7 April 59",07-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,8,21.9,1,Y,8/04/1959,"Wednesday, 8 April 59",08-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,9,23.9,1,Y,9/04/1959,"Thursday, 9 April 59",09-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,10,23.9,1,Y,10/04/1959,"Friday, 10 April 59",10-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,11,26.1,1,Y,11/04/1959,"Saturday, 11 April 59",11-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,12,25.3,1,Y,12/04/1959,"Sunday, 12 April 59",12-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,13,22.4,1,Y,13/04/1959,"Monday, 13 April 59",13-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,14,20.6,1,Y,14/04/1959,"Tuesday, 14 April 59",14-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,15,20.6,1,Y,15/04/1959,"Wednesday, 15 April 59",15-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,16,21.5,1,Y,16/04/1959,"Thursday, 16 April 59",16-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,17,22.8,1,Y,17/04/1959,"Friday, 17 April 59",17-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,18,22.3,1,Y,18/04/1959,"Saturday, 18 April 59",18-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,19,24.6,1,Y,19/04/1959,"Sunday, 19 April 59",19-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,20,20.5,1,Y,20/04/1959,"Monday, 20 April 59",20-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,21,20.5,1,Y,21/04/1959,"Tuesday, 21 April 59",21-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,22,16.8,1,Y,22/04/1959,"Wednesday, 22 April 59",22-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,23,22.2,1,Y,23/04/1959,"Thursday, 23 April 59",23-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,24,21.4,1,Y,24/04/1959,"Friday, 24 April 59",24-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,25,21.4,1,Y,25/04/1959,"Saturday, 25 April 59",25-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,26,23.3,1,Y,26/04/1959,"Sunday, 26 April 59",26-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,27,21.4,1,Y,27/04/1959,"Monday, 27 April 59",27-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,28,20.5,1,Y,28/04/1959,"Tuesday, 28 April 59",28-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,29,23.1,1,Y,29/04/1959,"Wednesday, 29 April 59",29-Apr-59,Apr-59 IDCJAC0010,66062,1859,4,30,26.1,1,Y,30/04/1959,"Thursday, 30 April 59",30-Apr-59,Apr-59 IDCJAC0010,66062,1859,5,1,28.6,1,Y,1/05/1959,"Friday, 1 May 59",01-May-59,May-59 IDCJAC0010,66062,1859,5,2,25.3,1,Y,2/05/1959,"Saturday, 2 May 59",02-May-59,May-59 IDCJAC0010,66062,1859,5,3,24.1,1,Y,3/05/1959,"Sunday, 3 May 59",03-May-59,May-59 IDCJAC0010,66062,1859,5,4,22.8,1,Y,4/05/1959,"Monday, 4 May 59",04-May-59,May-59 IDCJAC0010,66062,1859,5,5,22.9,1,Y,5/05/1959,"Tuesday, 5 May 59",05-May-59,May-59 IDCJAC0010,66062,1859,5,6,20.1,1,Y,6/05/1959,"Wednesday, 6 May 59",06-May-59,May-59 IDCJAC0010,66062,1859,5,7,21.1,1,Y,7/05/1959,"Thursday, 7 May 59",07-May-59,May-59 IDCJAC0010,66062,1859,5,8,18.9,1,Y,8/05/1959,"Friday, 8 May 59",08-May-59,May-59 IDCJAC0010,66062,1859,5,9,18.4,1,Y,9/05/1959,"Saturday, 9 May 59",09-May-59,May-59 IDCJAC0010,66062,1859,5,10,17.8,1,Y,10/05/1959,"Sunday, 10 May 59",10-May-59,May-59 IDCJAC0010,66062,1859,5,11,18.9,1,Y,11/05/1959,"Monday, 11 May 59",11-May-59,May-59 IDCJAC0010,66062,1859,5,12,20.9,1,Y,12/05/1959,"Tuesday, 12 May 59",12-May-59,May-59 IDCJAC0010,66062,1859,5,13,18.4,1,Y,13/05/1959,"Wednesday, 13 May 59",13-May-59,May-59 IDCJAC0010,66062,1859,5,14,18.6,1,Y,14/05/1959,"Thursday, 14 May 59",14-May-59,May-59 IDCJAC0010,66062,1859,5,15,17.1,1,Y,15/05/1959,"Friday, 15 May 59",15-May-59,May-59 IDCJAC0010,66062,1859,5,16,20.1,1,Y,16/05/1959,"Saturday, 16 May 59",16-May-59,May-59 IDCJAC0010,66062,1859,5,17,20.6,1,Y,17/05/1959,"Sunday, 17 May 59",17-May-59,May-59 IDCJAC0010,66062,1859,5,18,19.2,1,Y,18/05/1959,"Monday, 18 May 59",18-May-59,May-59 IDCJAC0010,66062,1859,5,19,17.6,1,Y,19/05/1959,"Tuesday, 19 May 59",19-May-59,May-59 IDCJAC0010,66062,1859,5,20,19.4,1,Y,20/05/1959,"Wednesday, 20 May 59",20-May-59,May-59 IDCJAC0010,66062,1859,5,21,15.6,1,Y,21/05/1959,"Thursday, 21 May 59",21-May-59,May-59 IDCJAC0010,66062,1859,5,22,13.9,1,Y,22/05/1959,"Friday, 22 May 59",22-May-59,May-59 IDCJAC0010,66062,1859,5,23,16.1,1,Y,23/05/1959,"Saturday, 23 May 59",23-May-59,May-59 IDCJAC0010,66062,1859,5,24,16.6,1,Y,24/05/1959,"Sunday, 24 May 59",24-May-59,May-59 IDCJAC0010,66062,1859,5,25,16.3,1,Y,25/05/1959,"Monday, 25 May 59",25-May-59,May-59 IDCJAC0010,66062,1859,5,26,18.3,1,Y,26/05/1959,"Tuesday, 26 May 59",26-May-59,May-59 IDCJAC0010,66062,1859,5,27,22.3,1,Y,27/05/1959,"Wednesday, 27 May 59",27-May-59,May-59 IDCJAC0010,66062,1859,5,28,22.5,1,Y,28/05/1959,"Thursday, 28 May 59",28-May-59,May-59 IDCJAC0010,66062,1859,5,29,17.3,1,Y,29/05/1959,"Friday, 29 May 59",29-May-59,May-59 IDCJAC0010,66062,1859,5,30,18.5,1,Y,30/05/1959,"Saturday, 30 May 59",30-May-59,May-59 IDCJAC0010,66062,1859,5,31,15,1,Y,31/05/1959,"Sunday, 31 May 59",31-May-59,May-59 IDCJAC0010,66062,1859,6,1,16.6,1,Y,1/06/1959,"Monday, 1 June 59",01-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,2,16.5,1,Y,2/06/1959,"Tuesday, 2 June 59",02-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,3,18.4,1,Y,3/06/1959,"Wednesday, 3 June 59",03-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,4,15.5,1,Y,4/06/1959,"Thursday, 4 June 59",04-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,5,15.2,1,Y,5/06/1959,"Friday, 5 June 59",05-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,6,16.6,1,Y,6/06/1959,"Saturday, 6 June 59",06-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,7,16.2,1,Y,7/06/1959,"Sunday, 7 June 59",07-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,8,16.9,1,Y,8/06/1959,"Monday, 8 June 59",08-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,9,19.3,1,Y,9/06/1959,"Tuesday, 9 June 59",09-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,10,15.4,1,Y,10/06/1959,"Wednesday, 10 June 59",10-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,11,15.5,1,Y,11/06/1959,"Thursday, 11 June 59",11-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,12,14.8,1,Y,12/06/1959,"Friday, 12 June 59",12-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,13,21.3,1,Y,13/06/1959,"Saturday, 13 June 59",13-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,14,20.9,1,Y,14/06/1959,"Sunday, 14 June 59",14-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,15,16.6,1,Y,15/06/1959,"Monday, 15 June 59",15-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,16,15,1,Y,16/06/1959,"Tuesday, 16 June 59",16-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,17,13.8,1,Y,17/06/1959,"Wednesday, 17 June 59",17-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,18,13.3,1,Y,18/06/1959,"Thursday, 18 June 59",18-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,19,12.2,1,Y,19/06/1959,"Friday, 19 June 59",19-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,20,12,1,Y,20/06/1959,"Saturday, 20 June 59",20-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,21,12.1,1,Y,21/06/1959,"Sunday, 21 June 59",21-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,22,13.3,1,Y,22/06/1959,"Monday, 22 June 59",22-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,23,13.8,1,Y,23/06/1959,"Tuesday, 23 June 59",23-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,24,13.9,1,Y,24/06/1959,"Wednesday, 24 June 59",24-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,25,14.6,1,Y,25/06/1959,"Thursday, 25 June 59",25-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,26,15.2,1,Y,26/06/1959,"Friday, 26 June 59",26-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,27,17.5,1,Y,27/06/1959,"Saturday, 27 June 59",27-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,28,16.6,1,Y,28/06/1959,"Sunday, 28 June 59",28-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,29,16.2,1,Y,29/06/1959,"Monday, 29 June 59",29-Jun-59,Jun-59 IDCJAC0010,66062,1859,6,30,14.4,1,Y,30/06/1959,"Tuesday, 30 June 59",30-Jun-59,Jun-59 IDCJAC0010,66062,1859,7,1,17.1,1,Y,1/07/1959,"Wednesday, 1 July 59",01-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,2,16.7,1,Y,2/07/1959,"Thursday, 2 July 59",02-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,3,15.5,1,Y,3/07/1959,"Friday, 3 July 59",03-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,4,15.3,1,Y,4/07/1959,"Saturday, 4 July 59",04-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,5,16.2,1,Y,5/07/1959,"Sunday, 5 July 59",05-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,6,16.2,1,Y,6/07/1959,"Monday, 6 July 59",06-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,7,19.7,1,Y,7/07/1959,"Tuesday, 7 July 59",07-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,8,13.4,1,Y,8/07/1959,"Wednesday, 8 July 59",08-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,9,14.3,1,Y,9/07/1959,"Thursday, 9 July 59",09-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,10,13.6,1,Y,10/07/1959,"Friday, 10 July 59",10-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,11,12.6,1,Y,11/07/1959,"Saturday, 11 July 59",11-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,12,15.3,1,Y,12/07/1959,"Sunday, 12 July 59",12-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,13,14.6,1,Y,13/07/1959,"Monday, 13 July 59",13-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,14,14,1,Y,14/07/1959,"Tuesday, 14 July 59",14-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,15,13.8,1,Y,15/07/1959,"Wednesday, 15 July 59",15-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,16,14.3,1,Y,16/07/1959,"Thursday, 16 July 59",16-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,17,16,1,Y,17/07/1959,"Friday, 17 July 59",17-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,18,17.2,1,Y,18/07/1959,"Saturday, 18 July 59",18-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,19,17.8,1,Y,19/07/1959,"Sunday, 19 July 59",19-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,20,12.4,1,Y,20/07/1959,"Monday, 20 July 59",20-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,21,11.1,1,Y,21/07/1959,"Tuesday, 21 July 59",21-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,22,14.7,1,Y,22/07/1959,"Wednesday, 22 July 59",22-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,23,14.1,1,Y,23/07/1959,"Thursday, 23 July 59",23-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,24,12.7,1,Y,24/07/1959,"Friday, 24 July 59",24-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,25,12.7,1,Y,25/07/1959,"Saturday, 25 July 59",25-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,26,13.2,1,Y,26/07/1959,"Sunday, 26 July 59",26-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,27,14.2,1,Y,27/07/1959,"Monday, 27 July 59",27-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,28,13.9,1,Y,28/07/1959,"Tuesday, 28 July 59",28-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,29,16.7,1,Y,29/07/1959,"Wednesday, 29 July 59",29-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,30,12.7,1,Y,30/07/1959,"Thursday, 30 July 59",30-Jul-59,Jul-59 IDCJAC0010,66062,1859,7,31,12.6,1,Y,31/07/1959,"Friday, 31 July 59",31-Jul-59,Jul-59 IDCJAC0010,66062,1859,8,1,13.7,1,Y,1/08/1959,"Saturday, 1 August 59",01-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,2,16.1,1,Y,2/08/1959,"Sunday, 2 August 59",02-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,3,16.2,1,Y,3/08/1959,"Monday, 3 August 59",03-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,4,16.3,1,Y,4/08/1959,"Tuesday, 4 August 59",04-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,5,17.1,1,Y,5/08/1959,"Wednesday, 5 August 59",05-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,6,16.4,1,Y,6/08/1959,"Thursday, 6 August 59",06-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,7,16.6,1,Y,7/08/1959,"Friday, 7 August 59",07-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,8,16.4,1,Y,8/08/1959,"Saturday, 8 August 59",08-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,9,19.4,1,Y,9/08/1959,"Sunday, 9 August 59",09-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,10,17.7,1,Y,10/08/1959,"Monday, 10 August 59",10-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,11,17.8,1,Y,11/08/1959,"Tuesday, 11 August 59",11-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,12,16.8,1,Y,12/08/1959,"Wednesday, 12 August 59",12-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,13,19.9,1,Y,13/08/1959,"Thursday, 13 August 59",13-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,14,19.9,1,Y,14/08/1959,"Friday, 14 August 59",14-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,15,16.4,1,Y,15/08/1959,"Saturday, 15 August 59",15-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,16,16.3,1,Y,16/08/1959,"Sunday, 16 August 59",16-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,17,16.2,1,Y,17/08/1959,"Monday, 17 August 59",17-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,18,14.4,1,Y,18/08/1959,"Tuesday, 18 August 59",18-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,19,21.5,1,Y,19/08/1959,"Wednesday, 19 August 59",19-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,20,19.1,1,Y,20/08/1959,"Thursday, 20 August 59",20-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,21,19.2,1,Y,21/08/1959,"Friday, 21 August 59",21-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,22,18.8,1,Y,22/08/1959,"Saturday, 22 August 59",22-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,23,16.7,1,Y,23/08/1959,"Sunday, 23 August 59",23-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,24,14.9,1,Y,24/08/1959,"Monday, 24 August 59",24-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,25,16.4,1,Y,25/08/1959,"Tuesday, 25 August 59",25-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,26,19.3,1,Y,26/08/1959,"Wednesday, 26 August 59",26-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,27,22.9,1,Y,27/08/1959,"Thursday, 27 August 59",27-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,28,22,1,Y,28/08/1959,"Friday, 28 August 59",28-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,29,17.3,1,Y,29/08/1959,"Saturday, 29 August 59",29-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,30,16.8,1,Y,30/08/1959,"Sunday, 30 August 59",30-Aug-59,Aug-59 IDCJAC0010,66062,1859,8,31,19.9,1,Y,31/08/1959,"Monday, 31 August 59",31-Aug-59,Aug-59 IDCJAC0010,66062,1859,9,1,22.2,1,Y,1/09/1959,"Tuesday, 1 September 59",01-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,2,15.7,1,Y,2/09/1959,"Wednesday, 2 September 59",02-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,3,12.9,1,Y,3/09/1959,"Thursday, 3 September 59",03-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,4,14.3,1,Y,4/09/1959,"Friday, 4 September 59",04-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,5,16.8,1,Y,5/09/1959,"Saturday, 5 September 59",05-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,6,19.3,1,Y,6/09/1959,"Sunday, 6 September 59",06-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,7,18.1,1,Y,7/09/1959,"Monday, 7 September 59",07-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,8,16.6,1,Y,8/09/1959,"Tuesday, 8 September 59",08-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,9,17.4,1,Y,9/09/1959,"Wednesday, 9 September 59",09-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,10,18.5,1,Y,10/09/1959,"Thursday, 10 September 59",10-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,11,17.6,1,Y,11/09/1959,"Friday, 11 September 59",11-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,12,19.7,1,Y,12/09/1959,"Saturday, 12 September 59",12-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,13,14.6,1,Y,13/09/1959,"Sunday, 13 September 59",13-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,14,18.8,1,Y,14/09/1959,"Monday, 14 September 59",14-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,15,14.6,1,Y,15/09/1959,"Tuesday, 15 September 59",15-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,16,15.1,1,Y,16/09/1959,"Wednesday, 16 September 59",16-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,17,14.6,1,Y,17/09/1959,"Thursday, 17 September 59",17-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,18,17.1,1,Y,18/09/1959,"Friday, 18 September 59",18-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,19,16.1,1,Y,19/09/1959,"Saturday, 19 September 59",19-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,20,16.1,1,Y,20/09/1959,"Sunday, 20 September 59",20-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,21,18.5,1,Y,21/09/1959,"Monday, 21 September 59",21-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,22,24.7,1,Y,22/09/1959,"Tuesday, 22 September 59",22-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,23,24.4,1,Y,23/09/1959,"Wednesday, 23 September 59",23-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,24,22.4,1,Y,24/09/1959,"Thursday, 24 September 59",24-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,25,18.8,1,Y,25/09/1959,"Friday, 25 September 59",25-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,26,21,1,Y,26/09/1959,"Saturday, 26 September 59",26-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,27,17.8,1,Y,27/09/1959,"Sunday, 27 September 59",27-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,28,19.6,1,Y,28/09/1959,"Monday, 28 September 59",28-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,29,25.6,1,Y,29/09/1959,"Tuesday, 29 September 59",29-Sep-59,Sep-59 IDCJAC0010,66062,1859,9,30,20.6,1,Y,30/09/1959,"Wednesday, 30 September 59",30-Sep-59,Sep-59 IDCJAC0010,66062,1859,10,1,23.3,1,Y,1/10/1959,"Thursday, 1 October 59",01-Oct-59,Oct-59 -------------------------------------------------------------------------------- /tests/unemployment.csv: -------------------------------------------------------------------------------- 1 | date,Employed persons total - trend,Employed persons total - seasonally adjusted,Employed persons total - original,Employed full-time - trend,Employed full-time - seasonally adjusted,Employed full-time - original,Employed part-time - trend,Employed part-time - seasonally adjusted,Employed part-time - original,Unemployed total - trend,Unemployed total - seasonally adjusted,Unemployed total - original,Unemployment rate - trend,Unemployment rate - seasonally adjusted,Unemployment rate - original 2 | Feb-1978,6005.1,5995.7,5985.7,5095.5,5077.7,5099.9,909.6,918,885.7,411.2,426.4,482.8,6.4,6.6,7.5 3 | Mar-1978,6011.7,6001,6040.6,5099.2,5093.4,5118.1,912.4,907.7,922.5,408.2,403.5,424.8,6.4,6.3,6.6 4 | Apr-1978,6018.7,6029.7,6054.2,5102.9,5118.6,5128.3,915.8,911.1,925.9,405.5,402.5,403.4,6.3,6.3,6.2 5 | May-1978,6025.2,6030.8,6038.3,5105,5116.6,5117.5,920.2,914.2,920.8,403.9,398.2,398.4,6.3,6.2,6.2 6 | Jun-1978,6030.3,6031.8,6031.3,5105.4,5102.2,5092.6,924.8,929.6,938.8,403.4,405.1,393.5,6.3,6.3,6.1 7 | Jul-1978,6032.8,6028.7,6036.1,5104.3,5094.9,5092.8,928.5,933.8,943.3,403.7,398.6,380.5,6.3,6.2,5.9 8 | Aug-1978,6033.3,6033.7,6005.4,5102.5,5095.6,5045.3,930.8,938.2,960,404.9,418.9,398.3,6.3,6.5,6.2 9 | Sep-1978,6033.8,6037.9,6024.3,5102.4,5112.7,5097,931.4,925.2,927.3,406.1,405.3,387.3,6.3,6.3,6 10 | Oct-1978,6035.9,6034.3,6045.9,5105.1,5106.3,5097.4,930.8,928,948.5,406.5,395.5,370.4,6.3,6.2,5.8 11 | Nov-1978,6040,6027,6033.8,5109.9,5102.6,5079.2,930.1,924.4,954.6,406.9,408.1,372.8,6.3,6.3,5.8 12 | Dec-1978,6044.6,6051.6,6125.4,5114.1,5111.2,5179,930.4,940.4,946.4,407.7,412.8,444.6,6.3,6.4,6.8 13 | Jan-1979,6049.3,6053.3,5971.3,5117.1,5123,5141.7,932.2,930.4,829.6,408.7,411,449.9,6.3,6.4,7 14 | Feb-1979,6054.4,6061.6,6050.7,5119.4,5127.6,5149.3,935,934,901.4,409.6,404,458.1,6.3,6.2,7 15 | Mar-1979,6060.4,6053.8,6096.2,5122.2,5122.5,5148.1,938.2,931.3,948,409.9,407.1,428.4,6.3,6.3,6.6 16 | Apr-1979,6067.1,6063.5,6087.7,5126,5120.2,5128.5,941.1,943.4,959.1,408.5,420.7,420.6,6.3,6.5,6.5 17 | May-1979,6074.6,6068,6075.6,5130.7,5116.5,5116.8,943.9,951.6,958.8,406.9,400.2,400.1,6.3,6.2,6.2 18 | Jun-1979,6084.3,6097.4,6095.7,5137.7,5151.3,5141,946.6,946.1,954.7,405.8,405.7,393,6.3,6.2,6.1 19 | Jul-1979,6096.8,6095.8,6103.9,5147.3,5146.9,5145.9,949.4,948.9,958,405.1,406.6,387.1,6.2,6.3,6 20 | Aug-1979,6111.6,6112.2,6078.5,5158.8,5164.5,5113.1,952.8,947.7,965.4,404.8,398.2,377.5,6.2,6.1,5.8 21 | Sep-1979,6128.7,6112.4,6157.8,5171.1,5157.7,5185.6,957.6,954.7,972.2,405.1,403.7,400.4,6.2,6.2,6.1 22 | Oct-1979,6147.4,6150.5,6164,5183.8,5184.6,5176.5,963.6,965.9,987.5,405.3,418.3,391.4,6.2,6.4,6 23 | Nov-1979,6166.9,6179.2,6188.8,5196.4,5206.5,5184.4,970.4,972.7,1004.4,404.3,398.2,363.6,6.2,6.1,5.5 24 | Dec-1979,6185.8,6182.3,6257.2,5209.8,5209.8,5279,976,972.5,978.1,402.1,401.9,431,6.1,6.1,6.4 25 | Jan-1980,6202.9,6204.6,6112.9,5224.1,5217.4,5230.1,978.8,987.2,882.8,400.5,405.6,441.7,6.1,6.1,6.7 26 | Feb-1980,6217.9,6219.8,6207.2,5238.5,5240.5,5262.1,979.4,979.3,945.1,400.5,396.6,448.5,6.1,6,6.7 27 | Mar-1980,6232.3,6231,6278.7,5253,5251.2,5278.9,979.3,979.8,999.7,402.5,393,415.6,6.1,5.9,6.2 28 | Apr-1980,6247.9,6241.7,6224.9,5267,5256.3,5234.4,980.9,985.4,990.5,406.4,406.1,408,6.1,6.1,6.2 29 | May-1980,6264.6,6265.5,6273.4,5279.6,5301.2,5301.7,985.1,964.3,971.8,410.7,416.3,416.6,6.2,6.2,6.2 30 | Jun-1980,6280.2,6273.3,6269.9,5288.4,5280.9,5269,991.8,992.3,1000.9,413.5,422.4,409.3,6.2,6.3,6.1 31 | Jul-1980,6293.4,6304.9,6314.1,5292.8,5293.1,5293.6,1000.5,1011.9,1020.5,414.2,406.8,387.6,6.2,6.1,5.8 32 | Aug-1980,6304.1,6313.1,6281.4,5294.7,5304.5,5251.1,1009.4,1008.7,1030.3,412.8,415.2,394.5,6.1,6.2,5.9 33 | Sep-1980,6312.9,6313.8,6360,5296.9,5292.2,5320,1016,1021.6,1040,409.8,410.7,407.6,6.1,6.1,6 34 | Oct-1980,6321.1,6304.9,6320.2,5300.9,5294.5,5287.2,1020.2,1010.4,1033.1,406.2,405.3,378.5,6,6,5.7 35 | Nov-1980,6330.3,6327.1,6342,5308.3,5296.6,5277.5,1021.9,1030.5,1064.5,402.5,393.5,359.6,6,5.9,5.4 36 | Dec-1980,6341.5,6349.6,6426.6,5318.8,5325.2,5396.5,1022.6,1024.4,1030.1,398.6,407.9,435.7,5.9,6,6.3 37 | Jan-1981,6354.8,6354.1,6253,5330.7,5337.6,5339.9,1024.1,1016.5,913,393.6,399.1,433.8,5.8,5.9,6.5 38 | Feb-1981,6369.1,6370.7,6356.5,5342.7,5347.1,5368.5,1026.4,1023.7,988,387.5,378.8,427.7,5.7,5.6,6.3 39 | Mar-1981,6382.1,6374.7,6428.1,5353,5338.4,5367.8,1029.1,1036.3,1060.3,382,388.3,413.3,5.6,5.7,6 40 | Apr-1981,6394,6402.6,6426.3,5361.9,5378,5383.1,1032.2,1024.6,1043.2,378.4,375.9,379.5,5.6,5.5,5.6 41 | May-1981,6405.8,6402.7,6412.4,5370.2,5361.2,5361.8,1035.6,1041.5,1050.6,377.8,378.2,379.3,5.6,5.6,5.6 42 | Jun-1981,6417,6418.6,6413.9,5377.9,5378.6,5364.7,1039.1,1040,1049.2,380.5,363.6,353.7,5.6,5.4,5.2 43 | Jul-1981,6425.1,6416.5,6425.3,5384.1,5381.5,5383.5,1041,1035,1041.8,385.9,396.3,378.2,5.7,5.8,5.6 44 | Aug-1981,6429.8,6431.9,6393.7,5388.9,5391,5337.1,1040.9,1040.9,1056.6,391.8,398.9,380.6,5.7,5.8,5.6 45 | Sep-1981,6432.3,6456.3,6502.7,5393.4,5408.4,5436.2,1038.9,1047.9,1066.5,397.5,396.7,394,5.8,5.8,5.7 46 | Oct-1981,6433.8,6427.6,6445.3,5398.5,5388.3,5383,1035.3,1039.3,1062.4,402.7,400.2,374,5.9,5.9,5.5 47 | Nov-1981,6436,6415.4,6433.3,5404.3,5385.2,5369.3,1031.7,1030.2,1064,407.3,409.2,375,6,6,5.5 48 | Dec-1981,6439.3,6428.2,6506.9,5409.3,5412.1,5484.7,1030,1016.1,1022.1,412.1,411.2,437.6,6,6,6.3 49 | Jan-1982,6443.2,6463.8,6355.5,5412.6,5429.9,5424.9,1030.6,1033.9,930.6,417.9,410.9,443.9,6.1,6,6.5 50 | Feb-1982,6445.9,6448.4,6432.4,5412.4,5415.8,5435.6,1033.5,1032.6,996.8,425.2,433.7,488.8,6.2,6.3,7.1 51 | Mar-1982,6446,6441.4,6497.4,5407.7,5401.7,5431.3,1038.3,1039.7,1066.1,433.1,434.4,463.9,6.3,6.3,6.7 52 | Apr-1982,6442,6451,6431.6,5398.4,5398.6,5371.2,1043.5,1052.4,1060.3,440.5,435.6,440,6.4,6.3,6.4 53 | May-1982,6435.1,6430.5,6440.9,5386.1,5383.8,5383,1049,1046.7,1057.9,448.4,452.8,453.8,6.5,6.6,6.6 54 | Jun-1982,6428.4,6418.7,6414.3,5373.6,5372.3,5357.1,1054.8,1046.5,1057.1,458.6,464.8,451.6,6.7,6.8,6.6 55 | Jul-1982,6421.6,6417.9,6425.9,5360,5357.1,5361.1,1061.5,1060.7,1064.8,474.7,473.5,453.4,6.9,6.9,6.6 56 | Aug-1982,6411.3,6414.4,6379.3,5342.2,5338.5,5285.9,1069.1,1075.9,1093.4,498.5,483,461.4,7.2,7,6.7 57 | Sep-1982,6395.3,6398.6,6443.5,5318.4,5331.3,5357.5,1076.8,1067.3,1086,529.4,511.9,509.1,7.6,7.4,7.3 58 | Oct-1982,6373.8,6400.6,6421.1,5289,5299.7,5296.9,1084.8,1100.9,1124.2,564.1,577.9,540.6,8.1,8.3,7.8 59 | Nov-1982,6347.4,6344.1,6366.8,5255.9,5266.8,5255.1,1091.4,1077.3,1111.8,599,602.7,555.2,8.6,8.7,8 60 | Dec-1982,6318.3,6293.9,6370.1,5223.2,5196.5,5265.2,1095.2,1097.4,1104.9,630.6,651.6,677.5,9.1,9.4,9.6 61 | Jan-1983,6291.3,6289.8,6172,5195.6,5194.1,5182.1,1095.7,1095.7,989.9,656.1,644.3,694.6,9.4,9.3,10.1 62 | Feb-1983,6270.6,6287.6,6263.9,5177.4,5182.8,5198.8,1093.1,1104.9,1065.2,675.6,671.3,750.1,9.7,9.6,10.7 63 | Mar-1983,6257.7,6254.3,6310.3,5168.9,5159.3,5186.3,1088.8,1095,1124,690.5,690.5,733.9,9.9,9.9,10.4 64 | Apr-1983,6253.1,6231.6,6254.5,5169.5,5166.1,5166.4,1083.6,1065.6,1088.1,702.8,703,709.3,10.1,10.1,10.2 65 | May-1983,6255.1,6261.8,6272.8,5176.8,5186.1,5183.4,1078.3,1075.7,1089.4,713.4,719.1,720.5,10.2,10.3,10.3 66 | Jun-1983,6261.8,6269.3,6266.5,5188.3,5189.3,5173.3,1073.4,1079.9,1093.1,720.7,710.3,693.2,10.3,10.2,10 67 | Jul-1983,6273.6,6275.5,6295,5202.8,5201.9,5214.6,1070.8,1073.6,1080.4,723.2,731.6,687.2,10.3,10.4,9.8 68 | Aug-1983,6289.8,6281.1,6241.2,5219,5200.4,5150.4,1070.8,1080.7,1090.8,719.6,713.9,686.8,10.3,10.2,9.9 69 | Sep-1983,6307.4,6315,6358.2,5233.7,5260.5,5285.9,1073.7,1054.5,1072.3,711.3,726.2,720.8,10.1,10.3,10.2 70 | Oct-1983,6325.2,6315.1,6336.1,5246.4,5240.4,5240.5,1078.8,1074.7,1095.6,699.2,700.7,653.2,10,10,9.3 71 | Nov-1983,6343.8,6352.6,6377.5,5257.7,5261.5,5253.3,1086.1,1091.2,1124.2,686.3,678.3,624.8,9.8,9.6,8.9 72 | Dec-1983,6363.8,6377.3,6456.5,5268.3,5272.8,5342.6,1095.4,1104.5,1113.9,674.6,664.1,690,9.6,9.4,9.7 73 | Jan-1984,6384.8,6371.6,6251.4,5279.5,5267.1,5249,1105.3,1104.5,1002.5,665.7,668,717.8,9.4,9.5,10.3 74 | Feb-1984,6407.5,6390.4,6365.4,5292.7,5280.7,5295.4,1114.8,1109.7,1069.9,660,660.8,736.5,9.3,9.4,10.4 75 | Mar-1984,6431,6446.1,6503.2,5308.3,5326.7,5354.7,1122.7,1119.4,1148.6,656,653.2,699.9,9.3,9.2,9.7 76 | Apr-1984,6454.3,6452.7,6477.6,5325.1,5318.1,5318.3,1129.2,1134.7,1159.3,652.2,666.4,675.6,9.2,9.4,9.4 77 | May-1984,6475.5,6477.6,6489.7,5339.7,5337.8,5333,1135.8,1139.8,1156.7,647.1,634.2,635.6,9.1,8.9,8.9 78 | Jun-1984,6493.6,6499.6,6499,5351.2,5361.9,5344,1142.4,1137.7,1155.1,641.2,649,632.5,9,9.1,8.9 79 | Jul-1984,6507.5,6509.5,6528.7,5359.4,5357.9,5371.7,1148.1,1151.6,1157,635.3,632.3,594.9,8.9,8.9,8.4 80 | Aug-1984,6517.3,6506.5,6466.1,5365.7,5371.4,5318.8,1151.6,1135.1,1147.3,629.9,629,604,8.8,8.8,8.5 81 | Sep-1984,6526,6536.4,6579.8,5372.3,5364.5,5388.7,1153.7,1171.9,1191.1,624.7,624.5,620.8,8.7,8.7,8.6 82 | Oct-1984,6536.1,6532.6,6553.2,5381.1,5370.7,5372.1,1155.1,1161.8,1181.1,620.2,620.6,578.4,8.7,8.7,8.1 83 | Nov-1984,6547.8,6548.4,6576.1,5391.8,5397.4,5391.8,1156,1150.9,1184.3,616.7,621.7,571.2,8.6,8.7,8 84 | Dec-1984,6561.2,6552.1,6636,5404.1,5407.2,5480.4,1157.1,1144.9,1155.7,613.9,608.2,627.4,8.6,8.5,8.6 85 | Jan-1985,6575.6,6563.7,6452.4,5416.2,5409.7,5415.6,1159.4,1154.1,1036.8,612.4,612.1,657.7,8.5,8.5,9.3 86 | Feb-1985,6590.1,6624.3,6595.7,5426.3,5438,5452.3,1163.8,1186.4,1143.3,612.1,605.5,674.1,8.5,8.4,9.3 87 | Mar-1985,6604.6,6598.9,6657.4,5434.5,5442.4,5471.8,1170.1,1156.5,1185.6,612.5,625.3,672.8,8.5,8.7,9.2 88 | Apr-1985,6621.2,6606.8,6588.8,5443.6,5430.8,5400.5,1177.6,1176,1188.4,613,606,615.3,8.5,8.4,8.5 89 | May-1985,6639.7,6644.3,6657.9,5455,5455.2,5448.9,1184.7,1189.1,1209,612,606.2,609.1,8.4,8.4,8.4 90 | Jun-1985,6662.6,6657.7,6659.4,5470.2,5464.8,5445,1192.4,1192.9,1214.3,608.9,623.1,607.6,8.4,8.6,8.4 91 | Jul-1985,6690.3,6684.4,6703.4,5488.5,5482.1,5496.8,1201.8,1202.3,1206.6,603.7,601.4,566.9,8.3,8.3,7.8 92 | Aug-1985,6721.8,6725.7,6675.5,5509.2,5519.4,5463.9,1212.6,1206.3,1211.6,597,596.4,572.7,8.2,8.1,7.9 93 | Sep-1985,6754.8,6770.1,6814.7,5532.2,5550.3,5573.8,1222.6,1219.9,1240.9,590.1,592.4,589.2,8,8,8 94 | Oct-1985,6786.1,6754.1,6771.1,5556,5522.3,5522.8,1230.1,1231.7,1248.3,584.5,573.9,534.8,7.9,7.8,7.3 95 | Nov-1985,6815.6,6853.5,6881.9,5579.6,5595.7,5590.3,1236,1257.8,1291.6,581.6,591.4,543.1,7.9,7.9,7.3 96 | Dec-1985,6842.2,6820.9,6910.8,5601.4,5589.9,5668.5,1240.7,1231,1242.3,582.5,574,591.1,7.8,7.8,7.9 97 | Jan-1986,6865.6,6870.3,6753.6,5620.7,5630.4,5632.9,1245,1239.9,1120.8,585.4,580.1,624.8,7.9,7.8,8.5 98 | Feb-1986,6887.1,6890.4,6861.9,5636.5,5652.9,5667.6,1250.6,1237.5,1194.3,588.5,598.1,665.3,7.9,8,8.8 99 | Mar-1986,6905.9,6899.3,6961.9,5648.1,5636.3,5667.8,1257.8,1263,1294.1,591.3,592.6,642.6,7.9,7.9,8.4 100 | Apr-1986,6962.8,6970,6997.9,5655,5651.7,5649.8,1307.8,1318.4,1348.1,590.4,598,608.7,7.8,7.9,8 101 | May-1986,6973.4,6963.1,6979,5659.1,5652.8,5644.2,1314.3,1310.3,1334.7,594.8,592.1,594.5,7.9,7.8,7.8 102 | Jun-1986,6980.9,7002.7,7007.7,5663.2,5684.6,5664,1317.7,1318.1,1343.6,601.5,579.7,563.8,7.9,7.6,7.4 103 | Jul-1986,6985.6,6986.6,6991.5,5667.1,5650.8,5658.6,1318.5,1335.8,1332.8,610.2,616.9,596.1,8,8.1,7.9 104 | Aug-1986,6989.9,6967.7,6918.5,5670.4,5667.5,5608.7,1319.5,1300.2,1309.8,620.2,624.7,597.6,8.1,8.2,8 105 | Sep-1986,6994.7,6992.7,7040.6,5672,5672.2,5694.1,1322.7,1320.4,1346.5,628.6,635.1,633.1,8.2,8.3,8.2 106 | Oct-1986,7001.3,7016.8,7030.4,5672,5685.7,5686.9,1329.3,1331.1,1343.5,633.6,634.7,591,8.3,8.3,7.8 107 | Nov-1986,7010.6,7006.3,7034.2,5672.2,5675.5,5670.6,1338.4,1330.8,1363.5,635.5,635.1,584.2,8.3,8.3,7.7 108 | Dec-1986,7022,7022.8,7116.8,5673.7,5661.2,5744.5,1348.3,1361.6,1372.3,635.8,639.1,655.8,8.3,8.3,8.4 109 | Jan-1987,7034.1,7024.5,6902.5,5676.4,5670.4,5669.7,1357.7,1354.1,1232.9,635.8,624.8,670.7,8.3,8.2,8.9 110 | Feb-1987,7047.5,7055,7022.3,5682.2,5687,5700.7,1365.3,1368,1321.6,636.2,629.4,699.7,8.3,8.2,9.1 111 | Mar-1987,7064.4,7065.3,7133.4,5693,5692.5,5725.8,1371.4,1372.9,1407.6,636.7,648.3,702.8,8.3,8.4,9 112 | Apr-1987,7084.4,7083.3,7109.6,5706.3,5709.8,5705.1,1378.1,1373.5,1404.4,636,641.5,652,8.2,8.3,8.4 113 | May-1987,7105,7088.1,7103.5,5720.2,5707.5,5696.3,1384.8,1380.5,1407.2,633.6,633.1,635.1,8.2,8.2,8.2 114 | Jun-1987,7122.3,7122.7,7128.9,5730.8,5727,5705.8,1391.5,1395.7,1423.1,629.9,619.5,603.1,8.1,8,7.8 115 | Jul-1987,7134.1,7170.9,7175.6,5736.5,5776.2,5786.1,1397.6,1394.7,1389.5,625.7,630.4,610.1,8.1,8.1,7.8 116 | Aug-1987,7143.2,7148,7092.3,5739.6,5730.4,5671.1,1403.6,1417.6,1421.2,622.2,629.5,602,8,8.1,7.8 117 | Sep-1987,7153.6,7136,7186.5,5743.9,5732,5751.3,1409.6,1404,1435.3,619.4,599.1,597.6,8,7.7,7.7 118 | Oct-1987,7168.9,7165.4,7177.4,5753.3,5764.6,5767.3,1415.5,1400.8,1410.1,615.2,629.5,585.4,7.9,8.1,7.5 119 | Nov-1987,7192.6,7155.7,7182.2,5770.9,5727.4,5722.9,1421.7,1428.3,1459.3,609.9,615.6,567.1,7.8,7.9,7.3 120 | Dec-1987,7224.7,7233.2,7330.7,5796.6,5802.3,5890.7,1428.1,1430.9,1440,604.7,604.5,620.6,7.7,7.7,7.8 121 | Jan-1988,7261,7294.4,7169.4,5826.4,5849.1,5844.5,1434.6,1445.4,1324.9,602.3,601.4,646.2,7.7,7.6,8.3 122 | Feb-1988,7294.5,7280.8,7247.3,5854.2,5856.1,5868.4,1440.3,1424.7,1378.9,601.9,581.5,644.7,7.6,7.4,8.2 123 | Mar-1988,7319.8,7323.2,7397.4,5875,5874,5910,1444.7,1449.1,1487.5,601.2,590.9,645.2,7.6,7.5,8 124 | Apr-1988,7337.6,7358.7,7383.4,5888.8,5905.6,5898.8,1448.8,1453.1,1484.6,598.3,632.9,644.8,7.5,7.9,8 125 | May-1988,7352,7341.4,7354.8,5898.8,5892.1,5877.4,1453.2,1449.3,1477.4,592.5,591.3,593,7.5,7.5,7.5 126 | Jun-1988,7367.2,7357.7,7378.3,5909.7,5897.4,5883.3,1457.5,1460.3,1495,582.4,598.6,569,7.3,7.5,7.2 127 | Jul-1988,7386.6,7378.3,7383.1,5925.5,5921.6,5933.6,1461.1,1456.7,1449.5,569.5,535,518.8,7.2,6.8,6.6 128 | Aug-1988,7409.1,7406.9,7353.3,5944.3,5938,5874.5,1464.8,1468.9,1478.8,557.1,562.6,538.7,7,7.1,6.8 129 | Sep-1988,7434.4,7449.6,7503.2,5964,5964.2,5981,1470.4,1485.5,1522.2,548.7,554.5,554.5,6.9,6.9,6.9 130 | Oct-1988,7462.9,7464.8,7477.3,5983.1,6010.1,6016.3,1479.8,1454.6,1461,545.5,545.7,507.9,6.8,6.8,6.4 131 | Nov-1988,7492.6,7486.2,7508.6,6000.8,5998.9,5992.5,1491.8,1487.3,1516.1,544.8,529.2,488.4,6.8,6.6,6.1 132 | Dec-1988,7523.8,7520.1,7622.9,6018.2,6008.2,6103.3,1505.6,1511.9,1519.6,543.2,550.6,563.3,6.7,6.8,6.9 133 | Jan-1989,7557.4,7548.6,7423.8,6037.7,6022.6,6012.4,1519.7,1526,1411.4,539.4,550.6,592,6.7,6.8,7.4 134 | Feb-1989,7592.6,7604.3,7566.5,6060.1,6061.9,6072.1,1532.5,1542.3,1494.4,532.8,539,597.7,6.6,6.6,7.3 135 | Mar-1989,7627.8,7626.8,7634.6,6084.5,6086.1,6076.3,1543.4,1540.8,1558.3,524.5,517.2,545.9,6.4,6.4,6.7 136 | Apr-1989,7661.4,7654.7,7678.4,6108.2,6116.1,6107.2,1553.3,1538.6,1571.2,515.2,506.3,515,6.3,6.2,6.3 137 | May-1989,7691.1,7709.8,7720.8,6127.2,6133.2,6114.1,1564,1576.6,1606.7,506.7,516.6,517.3,6.2,6.3,6.3 138 | Jun-1989,7717.5,7707.5,7711,6140.6,6141.7,6116.1,1576.9,1565.8,1595,500.6,493.2,475.9,6.1,6,5.8 139 | Jul-1989,7741.9,7735.9,7740.8,6150.6,6146.1,6161.2,1591.3,1589.8,1579.6,496.4,498,482.1,6,6,5.9 140 | Aug-1989,7764.7,7773.2,7715.3,6159.6,6165.1,6096.8,1605,1608.1,1618.5,492.5,490.7,468.3,6,5.9,5.7 141 | Sep-1989,7785.6,7782.2,7841.6,6169,6152.3,6168.1,1616.6,1629.9,1673.5,489.5,499.5,499.8,5.9,6,6 142 | Oct-1989,7803.7,7790.4,7806.5,6178.8,6173.4,6183.4,1624.9,1617,1623.1,488.8,490.4,456.4,5.9,5.9,5.5 143 | Nov-1989,7818.6,7843.2,7862.4,6187.9,6213.1,6205.3,1630.7,1630.2,1657.1,491.4,480.8,445.3,5.9,5.8,5.4 144 | Dec-1989,7830.6,7828.5,7935.5,6195,6187.7,6288.8,1635.5,1640.9,1646.7,497,485.6,501,6,5.8,5.9 145 | Jan-1990,7840.7,7833.7,7707.7,6200.4,6200.5,6187.1,1640.2,1633.2,1520.6,504.3,509.5,549.3,6,6.1,6.7 146 | Feb-1990,7851.7,7845.7,7803,6205.3,6201,6207.5,1646.4,1644.7,1595.5,513.4,534.6,592.7,6.1,6.4,7.1 147 | Mar-1990,7864.5,7862.8,7874.1,6211,6212.9,6202.8,1653.5,1649.9,1671.3,524,518.4,547.9,6.2,6.2,6.5 148 | Apr-1990,7877.2,7865.4,7887.9,6217.9,6201.3,6190.3,1659.3,1664,1697.6,536.4,527,533.2,6.4,6.3,6.3 149 | May-1990,7887,7898.3,7908.5,6224.6,6232.1,6210.7,1662.4,1666.2,1697.8,550.5,549.6,548.6,6.5,6.5,6.5 150 | Jun-1990,7890.1,7897.3,7900.3,6226.9,6230.1,6204.7,1663.2,1667.2,1695.6,567.5,559.1,539.6,6.7,6.6,6.4 151 | Jul-1990,7884.6,7898,7919.4,6221.7,6231.5,6258.2,1662.9,1666.5,1661.2,587.1,599,567,6.9,7,6.7 152 | Aug-1990,7871.6,7868,7808,6209.3,6212.4,6141.5,1662.3,1655.5,1666.5,608,611,584.6,7.2,7.2,7 153 | Sep-1990,7853.9,7843,7905.5,6190.9,6195,6210.8,1663,1648,1694.7,628,624.5,625,7.4,7.4,7.3 154 | Oct-1990,7833.6,7828.4,7848.9,6167.6,6150.7,6165.3,1666,1677.7,1683.6,645.8,647.1,603.1,7.6,7.6,7.1 155 | Nov-1990,7811.8,7808.7,7826.9,6140,6132,6125.2,1671.8,1676.7,1701.7,665,672.5,625.8,7.8,7.9,7.4 156 | Dec-1990,7789.6,7811.8,7915.5,6109.7,6129.3,6229.4,1680,1682.5,1686.1,688.7,680,700.8,8.1,8,8.1 157 | Jan-1991,7767,7750.7,7641.3,6077.5,6086.1,6104.6,1689.5,1664.7,1536.7,716.9,709,763.3,8.4,8.4,9.1 158 | Feb-1991,7743.6,7757.5,7708.8,6044.8,6042.8,6044.3,1698.8,1714.7,1664.5,747.1,730.6,807.5,8.8,8.6,9.5 159 | Mar-1991,7719.3,7702.1,7715.4,6012.9,5997.4,5987.3,1706.4,1704.7,1728.1,774.6,778,818.7,9.1,9.2,9.6 160 | Apr-1991,7696.2,7695.5,7717.2,5984.1,5975,5963.3,1712.1,1720.5,1754,796.5,841.4,849.5,9.4,9.9,9.9 161 | May-1991,7676.5,7693.1,7703.7,5962.5,5980,5959.3,1714,1713.1,1744.4,811.6,807.6,805.4,9.6,9.5,9.5 162 | Jun-1991,7660.1,7655.1,7678.1,5948.3,5942.9,5930.5,1711.8,1712.3,1747.6,820.1,803.2,757.7,9.7,9.5,9 163 | Jul-1991,7645.7,7630.8,7583,5938.3,5923.2,5900.9,1707.5,1707.6,1682.1,825.4,818.8,797.4,9.7,9.7,9.5 164 | Aug-1991,7632.8,7634.8,7620.7,5929.2,5931.6,5902.2,1703.7,1703.3,1718.5,831.6,828.3,796.6,9.8,9.8,9.5 165 | Sep-1991,7623.4,7644.2,7713.2,5920,5933.6,5952.3,1703.3,1710.6,1760.9,840.9,852.3,854.1,9.9,10,10 166 | Oct-1991,7618.3,7615.3,7638,5911.2,5938.8,5955.2,1707.2,1676.4,1682.7,853.3,844.3,789,10.1,10,9.4 167 | Nov-1991,7618.6,7596.3,7614.9,5902.8,5857.9,5853.8,1715.8,1738.4,1761.1,865.6,860.8,806.2,10.2,10.2,9.6 168 | Dec-1991,7621.9,7615.9,7712.2,5894.6,5896.6,5990.8,1727.4,1719.3,1721.3,874.7,889.6,906,10.3,10.5,10.5 169 | Jan-1992,7625.7,7634.9,7518.9,5885.4,5897.6,5905.9,1740.3,1737.3,1613.1,881.2,879.6,948.6,10.4,10.3,11.2 170 | Feb-1992,7628.5,7649.8,7597.2,5875.7,5883.4,5881.7,1752.7,1766.4,1715.5,887.1,888.2,982.8,10.4,10.4,11.5 171 | Mar-1992,7630.7,7631.2,7646.2,5866.1,5868.2,5858,1764.6,1763,1788.1,894.4,893.7,935.3,10.5,10.5,10.9 172 | Apr-1992,7632.5,7624.3,7644.1,5856.4,5850.9,5838.1,1776.1,1773.4,1806,902.6,890.6,894.6,10.6,10.5,10.5 173 | May-1992,7635.8,7620.2,7631.4,5847.4,5842.9,5822.7,1788.3,1777.3,1808.7,910.9,904.7,901.7,10.7,10.6,10.6 174 | Jun-1992,7640.6,7632.3,7637.3,5839.3,5827.3,5804.7,1801.3,1805,1832.6,918.7,926.1,894.8,10.7,10.8,10.5 175 | Jul-1992,7643.4,7649.2,7668.3,5831.9,5842.1,5868.1,1811.5,1807.2,1800.1,925.9,953.1,904.8,10.8,11.1,10.6 176 | Aug-1992,7642.5,7671.1,7613.4,5824.3,5836.7,5769.7,1818.2,1834.3,1843.7,931.6,920.9,886.2,10.9,10.7,10.4 177 | Sep-1992,7636.1,7634.1,7709.7,5816.5,5820.6,5841.9,1819.5,1813.5,1867.8,936.4,906.3,910.3,10.9,10.6,10.6 178 | Oct-1992,7625.8,7643.6,7665.7,5810.7,5812.5,5828.2,1815,1831.1,1837.5,940.1,952.8,893.7,11,11.1,10.4 179 | Nov-1992,7615.6,7568.8,7587.4,5809.5,5778.5,5774.6,1806.1,1790.2,1812.8,942.4,946.9,888.2,11,11.1,10.5 180 | Dec-1992,7608.9,7598.7,7693.4,5813.8,5810.2,5904.3,1795.1,1788.4,1789.1,942.5,958.4,969.2,11,11.2,11.2 181 | Jan-1993,7607.2,7650.1,7533.7,5823.5,5848.5,5848.9,1783.7,1801.7,1684.8,939.8,928.4,998.9,11,10.8,11.7 182 | Feb-1993,7609.1,7581.6,7531,5836,5820.8,5819.3,1773,1760.8,1711.6,934.4,938.5,1039.3,10.9,11,12.1 183 | Mar-1993,7611.9,7631.3,7645.7,5847.7,5860.1,5849.3,1764.2,1771.2,1796.5,929,928,972.4,10.9,10.8,11.3 184 | Apr-1993,7613.6,7610.3,7572.6,5855.4,5856,5808.2,1758.3,1754.3,1764.3,926.3,916.8,920.9,10.8,10.8,10.8 185 | May-1993,7616,7612.4,7620.5,5858.8,5852.6,5831.1,1757.3,1759.8,1789.4,927,919.5,915.4,10.8,10.8,10.7 186 | Jun-1993,7622.2,7625.1,7627.9,5860.1,5877.2,5852.6,1762.1,1747.9,1775.3,929.8,943,911.2,10.9,11,10.7 187 | Jul-1993,7635.5,7626,7646.5,5863.3,5852.7,5880.7,1772.2,1773.3,1765.8,934,932.6,885.2,10.9,10.9,10.4 188 | Aug-1993,7654.5,7651.8,7589.4,5869.4,5866.7,5796.8,1785.2,1785.1,1792.6,938.2,943.8,909.5,10.9,11,10.7 189 | Sep-1993,7676.9,7669.1,7747.6,5878.4,5861.3,5885.7,1798.5,1807.8,1861.9,941,922.3,927.4,10.9,10.7,10.7 190 | Oct-1993,7701.9,7718.6,7738.8,5890.7,5901.8,5916.6,1811.2,1816.8,1822.2,941.1,948.8,892.6,10.9,10.9,10.3 191 | Nov-1993,7725.8,7729.1,7744.9,5903.7,5908,5902.9,1822.1,1821.1,1842,938.2,949,892.9,10.8,10.9,10.3 192 | Dec-1993,7747.4,7744.7,7842.1,5915.6,5926.9,6024.2,1831.8,1817.8,1817.9,931.5,932,939.3,10.7,10.7,10.7 193 | Jan-1994,7765.9,7763.3,7646.8,5926.1,5916.6,5911,1839.8,1846.6,1735.8,920.8,916.6,983.5,10.6,10.6,11.4 194 | Feb-1994,7783.7,7789.4,7738.6,5936.4,5938.1,5937.3,1847.3,1851.3,1801.3,906.7,904.3,1005.1,10.4,10.4,11.5 195 | Mar-1994,7803.5,7808.5,7824.2,5948.2,5949.3,5937.5,1855.2,1859.2,1886.7,891.1,900.2,945,10.2,10.3,10.8 196 | Apr-1994,7827.6,7811.7,7827.4,5963.8,5950.8,5936,1863.8,1860.9,1891.4,876.2,872.4,876.4,10.1,10,10.1 197 | May-1994,7856.2,7852.5,7857.9,5983,5981.1,5957.3,1873.1,1871.5,1900.6,863.1,849.1,844.4,9.9,9.8,9.7 198 | Jun-1994,7886.4,7874.6,7878.4,6003.8,6015.4,5988.6,1882.6,1859.2,1889.8,851.1,858.6,828.6,9.7,9.8,9.5 199 | Jul-1994,7916,7946.2,7966,6023.6,6023.6,6053.2,1892.4,1922.6,1912.8,839.7,843.5,798.7,9.6,9.6,9.1 200 | Aug-1994,7942.3,7932.1,7861.7,6039.3,6026,5955.5,1903,1906.1,1906.2,828.6,827,796.1,9.4,9.4,9.2 201 | Sep-1994,7964.9,7981,8054.4,6051,6083.7,6104.7,1913.8,1897.3,1949.7,817.9,823.9,829.3,9.3,9.4,9.3 202 | Oct-1994,7984.5,7977.9,7997.2,6059.7,6044.9,6059.4,1924.8,1933,1937.7,808.2,797,750.9,9.2,9.1,8.6 203 | Nov-1994,8004.4,7989.3,8003.3,6068.4,6072.1,6065.6,1936,1917.1,1937.7,798.8,802.9,755,9.1,9.1,8.6 204 | Dec-1994,8027.5,8033.7,8135.5,6080.1,6069.9,6172,1947.4,1963.8,1963.5,789.7,787,791,9,8.9,8.9 205 | Jan-1995,8054.9,8044.7,7928.4,6097,6080.7,6074.1,1957.9,1964,1854.3,780.4,781,836.4,8.8,8.8,9.5 206 | Feb-1995,8085.2,8098.5,8049.9,6118.3,6141.3,6143.1,1966.9,1957.3,1906.7,770.9,784,873.7,8.7,8.8,9.8 207 | Mar-1995,8116.2,8101.8,8118.1,6142.5,6122.6,6110,1973.7,1979.3,2008.1,761.9,762.9,804.1,8.6,8.6,9 208 | Apr-1995,8146.4,8159.9,8174.6,6167.2,6179.5,6163.7,1979.3,1980.4,2010.9,754.2,734,737.8,8.5,8.3,8.3 209 | May-1995,8171.9,8165.2,8165.2,6188.3,6190.7,6162,1983.6,1974.5,2003.2,748.9,755.3,750.8,8.4,8.5,8.4 210 | Jun-1995,8191.9,8200.4,8205.6,6205,6211.3,6180.6,1986.9,1989.1,2025.1,747.7,748.3,723.5,8.4,8.4,8.1 211 | Jul-1995,8207.7,8205.9,8229,6216.4,6205,6238.3,1991.3,2000.9,1990.7,749.4,752.5,708.8,8.4,8.4,7.9 212 | Aug-1995,8221.3,8236.6,8165.9,6224.9,6235.6,6160.9,1996.3,2001,2005,752.5,747.3,718.9,8.4,8.3,8.1 213 | Sep-1995,8235.3,8223.8,8300.4,6232.9,6240.6,6263.6,2002.3,1983.2,2036.7,755,750.9,756.8,8.4,8.4,8.4 214 | Oct-1995,8249.6,8213.9,8232.6,6240.3,6214.5,6228.5,2009.3,1999.4,2004.1,755.6,769.6,725.7,8.4,8.6,8.1 215 | Nov-1995,8263.3,8286.9,8300.3,6247.3,6251.2,6244.6,2016,2035.7,2055.6,755.3,764,719.9,8.4,8.4,8 216 | Dec-1995,8274.4,8289.3,8395.7,6252.4,6254,6360.1,2022,2035.3,2035.5,755.9,733.7,736,8.4,8.1,8.1 217 | Jan-1996,8282.4,8283.4,8166.7,6255.4,6277.3,6265.5,2027,2006.1,1901.2,756.7,764,817.7,8.4,8.4,9.1 218 | Feb-1996,8287.1,8292.3,8246.6,6256.5,6254.8,6259.6,2030.6,2037.5,1987,757.6,753.7,839.7,8.4,8.3,9.2 219 | Mar-1996,8290.1,8265.7,8280.4,6256.9,6234,6220.2,2033.1,2031.7,2060.2,759,759.3,799.2,8.4,8.4,8.8 220 | Apr-1996,8292.4,8293.9,8248,6256.7,6260.1,6207.6,2035.6,2033.8,2040.5,761.3,776.8,782.2,8.4,8.6,8.7 221 | May-1996,8295.7,8300.8,8297.1,6256.9,6261.9,6230.6,2038.9,2038.9,2066.6,764.9,761.8,758.1,8.4,8.4,8.4 222 | Jun-1996,8299.3,8304.6,8311.7,6257.5,6255.5,6222.9,2041.8,2049.2,2088.8,769.1,747.7,723.8,8.5,8.3,8 223 | Jul-1996,8300.6,8306,8332.1,6257.3,6268.9,6303.8,2043.3,2037.1,2028.3,773.8,775.9,727.3,8.5,8.5,8 224 | Aug-1996,8300.5,8300,8265.9,6256.1,6249.8,6208.4,2044.3,2050.2,2057.5,778.4,793.3,763.6,8.6,8.7,8.5 225 | Sep-1996,8300.9,8294.8,8373,6253.9,6249.8,6273.9,2047.1,2044.9,2099,781.7,778.4,785.4,8.6,8.6,8.6 226 | Oct-1996,8304,8301.5,8319.4,6251.8,6251.2,6264.6,2052.2,2050.2,2054.8,783.7,796.2,751.9,8.6,8.8,8.3 227 | Nov-1996,8310.8,8299.5,8314.4,6250.2,6245.1,6240.4,2060.6,2054.4,2073.9,784.3,767.2,722.9,8.6,8.5,8 228 | Dec-1996,8319.3,8324.3,8431.4,6248,6258.8,6366,2071.3,2065.5,2065.4,784.3,784.7,786.9,8.6,8.6,8.5 229 | Jan-1997,8327.2,8337.9,8235.2,6244.5,6246,6264.3,2082.7,2091.9,1971,784,779.7,833.1,8.6,8.6,9.2 230 | Feb-1997,8332.9,8334.3,8291.4,6240.2,6238.3,6246,2092.6,2096,2045.4,783.7,795.2,886.9,8.6,8.7,9.7 231 | Mar-1997,8334.7,8337.3,8347.5,6234.8,6234.1,6218.3,2099.8,2103.1,2129.2,782.9,783.1,823.7,8.6,8.6,9 232 | Apr-1997,8334.1,8330.5,8343.1,6230.2,6226.1,6208.4,2103.9,2104.3,2134.7,781.2,778.8,785.1,8.6,8.5,8.6 233 | May-1997,8333.1,8334.3,8330.2,6227.5,6235,6203,2105.6,2099.3,2127.2,778,778.1,774.9,8.5,8.5,8.5 234 | Jun-1997,8335.6,8335.5,8345.6,6228.3,6220.2,6187.3,2107.2,2115.3,2158.3,772.8,757.8,735.2,8.5,8.3,8.1 235 | Jul-1997,8344.4,8346.1,8374.9,6233.1,6240.6,6276.5,2111.3,2105.5,2098.4,766.2,781.9,731.4,8.4,8.6,8 236 | Aug-1997,8359.6,8333,8250.3,6241.1,6221.4,6143.8,2118.5,2111.6,2106.5,758,770.5,743.4,8.3,8.5,8.3 237 | Sep-1997,8379.3,8394.8,8474,6251.5,6265.5,6290.7,2127.8,2129.3,2183.3,748.5,737.2,744.7,8.2,8.1,8.1 238 | Oct-1997,8400.1,8388.7,8405.2,6262.3,6256.5,6267.2,2137.7,2132.2,2138,738.8,731.9,692.1,8.1,8,7.6 239 | Nov-1997,8419,8446,8462.1,6272.9,6287,6283.8,2146.1,2159,2178.3,730.1,732.9,690.8,8,8,7.5 240 | Dec-1997,8434.3,8432.9,8540.5,6281.9,6270.9,6379.4,2152.4,2161.9,2161.1,723,722.8,720.5,7.9,7.9,7.8 241 | Jan-1998,8445.9,8441.2,8334.7,6287.8,6293.6,6306.1,2158.1,2147.7,2028.6,717.6,719.3,770.1,7.8,7.9,8.5 242 | Feb-1998,8455.5,8452.6,8413,6291.2,6288.8,6301.1,2164.3,2163.8,2111.9,714.4,713.1,794.7,7.8,7.8,8.6 243 | Mar-1998,8464.8,8455.5,8460,6293.3,6294.6,6275.9,2171.4,2160.9,2184,713.2,723.2,757.9,7.8,7.9,8.2 244 | Apr-1998,8475.8,8488,8499.9,6296.7,6312.6,6292.7,2179.1,2175.4,2207.2,714.6,696.7,702.9,7.8,7.6,7.6 245 | May-1998,8489.8,8486.2,8482.5,6303.1,6280.7,6248.3,2186.7,2205.5,2234.2,717.3,713.2,711.2,7.8,7.8,7.7 246 | Jun-1998,8506.7,8505.9,8516.8,6312.6,6303.2,6268.9,2194.1,2202.7,2247.9,719.7,722.8,702.8,7.8,7.8,7.6 247 | Jul-1998,8524.2,8517.9,8541.9,6322.9,6329.6,6365.2,2201.3,2188.3,2176.7,719.8,735.8,686.7,7.8,8,7.4 248 | Aug-1998,8541.3,8530.9,8455.2,6332.7,6335.6,6257,2208.6,2195.3,2198.2,716.1,717.1,690.2,7.7,7.8,7.5 249 | Sep-1998,8556,8573.6,8653.2,6339.8,6356.2,6381.4,2216.1,2217.5,2271.8,708,709.1,716.1,7.6,7.6,7.6 250 | Oct-1998,8567.5,8585.2,8601,6344.4,6351.5,6360.7,2223.1,2233.7,2240.3,696.7,676.7,640.4,7.5,7.3,6.9 251 | Nov-1998,8576.8,8557.4,8554.3,6347.8,6323.4,6324.1,2229,2234,2230.2,683.9,707.2,665.3,7.4,7.6,7.2 252 | Dec-1998,8583.7,8586.4,8696.5,6351,6347.9,6460.4,2232.6,2238.5,2236.2,672.9,663,659.1,7.3,7.2,7 253 | Jan-1999,8589.8,8585.8,8477.4,6355.6,6363.7,6373.1,2234.2,2222.1,2104.3,664.2,657.3,702.5,7.2,7.1,7.7 254 | Feb-1999,8597.1,8593.7,8556.5,6361.4,6361.3,6377.3,2235.7,2232.5,2179.2,656.5,658.8,735.8,7.1,7.1,7.9 255 | Mar-1999,8607.3,8620.3,8618.9,6368.5,6379.1,6358.4,2238.8,2241.2,2260.5,648.5,649.6,683.5,7,7,7.3 256 | Apr-1999,8620.1,8622.1,8631.9,6377,6380.4,6356.6,2243.1,2241.7,2275.4,641.5,645.4,652.8,6.9,7,7 257 | May-1999,8634.6,8610.2,8606.5,6387.2,6361,6327.8,2247.4,2249.2,2278.7,637.3,649.3,649,6.9,7,7 258 | Jun-1999,8650.7,8661.2,8673.2,6400,6403.9,6368.2,2250.7,2257.2,2305,635.7,617.1,600.6,6.8,6.7,6.5 259 | Jul-1999,8670.4,8679.2,8706.7,6416.6,6423.7,6460.8,2253.8,2255.5,2245.8,634.9,619,575.5,6.8,6.7,6.2 260 | Aug-1999,8691.8,8687.2,8603.6,6434.4,6436.9,6356.9,2257.4,2250.4,2246.7,634.7,644.6,619.7,6.8,6.9,6.7 261 | Sep-1999,8712.1,8700,8777.1,6449.6,6443.8,6466.9,2262.5,2256.2,2310.2,634.2,659.5,668.8,6.8,7,7.1 262 | Oct-1999,8729.3,8741.2,8755.3,6460.1,6468,6474.7,2269.2,2273.2,2280.5,632.9,634.6,600.3,6.8,6.8,6.4 263 | Nov-1999,8744.3,8750,8763.7,6466.9,6471.1,6467.3,2277.5,2278.8,2296.4,630.6,602.8,565.7,6.7,6.4,6.1 264 | Dec-1999,8759.8,8786.3,8900.7,6472.1,6489.2,6606.9,2287.7,2297.1,2293.7,627.7,628,625.7,6.7,6.7,6.6 265 | Jan-2000,8777,8736.4,8628.2,6478.5,6453.1,6458.7,2298.5,2283.3,2169.5,624.6,633.8,674.8,6.6,6.8,7.3 266 | Feb-2000,8797.4,8788.4,8754.4,6489,6475.3,6496.9,2308.4,2313.1,2257.5,621.2,623.3,699.2,6.6,6.6,7.4 267 | Mar-2000,8823.8,8836.4,8830.7,6505.5,6520.9,6498.2,2318.3,2315.5,2332.5,616,620.3,652.8,6.5,6.6,6.9 268 | Apr-2000,8857.3,8873.2,8882.2,6528.7,6534.1,6506.9,2328.7,2339,2375.3,607.7,603.1,612.2,6.4,6.4,6.4 269 | May-2000,8895.8,8869.5,8865,6555.8,6525,6490.4,2340,2344.5,2374.6,596.3,606.6,607.3,6.3,6.4,6.4 270 | Jun-2000,8931.4,8909.2,8922,6581.4,6588.5,6551.7,2350.1,2320.7,2370.3,585.1,579.8,564.3,6.1,6.1,5.9 271 | Jul-2000,8956.9,8991.4,9020,6600.3,6624.3,6661.4,2356.6,2367.1,2358.6,577.5,567.6,525.6,6.1,5.9,5.5 272 | Aug-2000,8968.6,8988.2,8911.6,6608.8,6603,6522.2,2359.7,2385.2,2389.4,573.6,579.1,556.1,6,6.1,5.9 273 | Sep-2000,8968.4,8983.6,9061.3,6606.4,6627.6,6649.3,2362,2356,2412,573.8,570,578.1,6,6,6 274 | Oct-2000,8959,8960,8973.1,6595.3,6588.2,6593.2,2363.6,2371.8,2379.9,577.4,572.2,541.1,6.1,6,5.7 275 | Nov-2000,8946.8,8902.1,8912.7,6580.3,6571.7,6568.5,2366.6,2330.4,2344.3,583.6,595.4,557.4,6.1,6.3,5.9 276 | Dec-2000,8940.3,8944.7,9059.6,6567.9,6568.3,6688.6,2372.4,2376.3,2370.9,591.8,594.5,592.2,6.2,6.2,6.1 277 | Jan-2001,8944.3,8949.1,8834.9,6561.8,6539.9,6534,2382.5,2409.2,2300.9,601.6,585.3,625.7,6.3,6.1,6.6 278 | Feb-2001,8957.2,8953.5,8920.9,6559.4,6555.7,6580.9,2397.7,2397.8,2340,613,622.8,700.4,6.4,6.5,7.3 279 | Mar-2001,8974.1,8963.3,8956,6556.6,6576.2,6552.6,2417.4,2387.1,2403.5,625.2,618,650.2,6.5,6.5,6.8 280 | Apr-2001,8990.9,9014,9023.6,6550.2,6557.4,6528.1,2440.7,2456.7,2495.6,650.4,654.7,663.6,6.7,6.8,6.9 281 | May-2001,9004.5,9007.5,9004.6,6539.1,6553,6518.4,2465.4,2454.6,2486.2,659.2,665.3,664.2,6.8,6.9,6.9 282 | Jun-2001,9015.1,9003.8,9021.9,6525.9,6519.6,6483.9,2489.2,2484.2,2537.9,665.8,670.1,651.5,6.9,6.9,6.7 283 | Jul-2001,9024.2,9024,9048.9,6514.6,6492.3,6526.8,2509.6,2531.6,2522,670.2,665.1,611.9,6.9,6.9,6.3 284 | Aug-2001,9031.4,9046.1,8971.9,6508.9,6509.8,6431.8,2522.6,2536.3,2540.1,673.6,668.8,638.1,6.9,6.9,6.6 285 | Sep-2001,9039,9027.3,9105.9,6510.2,6507.1,6603.8,2528.8,2520.2,2502.2,676.8,663.1,671.2,7,6.8,6.9 286 | Oct-2001,9049.5,9045.4,9058.7,6517.3,6526.4,6528,2532.3,2519,2530.7,678.1,700,657.9,7,7.2,6.8 287 | Nov-2001,9063.4,9071.8,9055.6,6526,6524.6,6525.6,2537.4,2547.2,2530.1,676.2,671.8,626.3,6.9,6.9,6.5 288 | Dec-2001,9078.5,9064.9,9177.1,6535,6538.6,6658.4,2543.5,2526.3,2518.7,669.1,666.9,660,6.9,6.9,6.7 289 | Jan-2002,9094,9090.7,8993.4,6542.7,6542.8,6575.4,2551.4,2547.9,2418,658.2,674.2,734.8,6.7,6.9,7.6 290 | Feb-2002,9107.9,9126.3,9092.3,6548.4,6541.8,6571.3,2559.6,2584.5,2521,645.4,638.1,719.9,6.6,6.5,7.3 291 | Mar-2002,9119.7,9131.6,9128.5,6553.3,6565.8,6542.4,2566.4,2565.8,2586.1,633.6,626.5,660,6.5,6.4,6.7 292 | Apr-2002,9131,9118.8,9129.5,6558.6,6544,6513.6,2572.4,2574.8,2616,625.4,616.7,625.7,6.4,6.3,6.4 293 | May-2002,9143.8,9134.8,9134.7,6564.4,6589.8,6557,2579.4,2545,2577.7,621.2,620.2,620.9,6.4,6.4,6.4 294 | Jun-2002,9158.9,9160.1,9180.8,6570.3,6544.1,6509.4,2588.7,2616,2671.4,619.1,635.8,619.7,6.3,6.5,6.3 295 | Jul-2002,9176.7,9167.1,9194.5,6576.6,6572.6,6604.1,2600.2,2594.5,2590.4,618.4,602.8,553,6.3,6.2,5.7 296 | Aug-2002,9198.8,9223,9150.3,6584.6,6613.3,6537.1,2614.2,2609.7,2613.2,617.6,626.4,595.2,6.3,6.4,6.1 297 | Sep-2002,9226.7,9226.2,9303.5,6597.4,6591.2,6687.6,2629.3,2635,2615.9,615.4,621.9,631.4,6.3,6.3,6.4 298 | Oct-2002,9260,9234.3,9249.1,6615.9,6593.2,6591.5,2644.1,2641.1,2657.6,612.6,601.8,566.2,6.2,6.1,5.8 299 | Nov-2002,9295.5,9284.8,9286.7,6637.1,6624.5,6621.5,2658.3,2660.3,2665.2,609.9,610,565.9,6.2,6.2,5.7 300 | Dec-2002,9329.4,9327.3,9439.7,6658,6665.4,6787,2671.4,2661.8,2652.7,607.6,613.8,607.4,6.1,6.2,6 301 | Jan-2003,9356.9,9383.6,9281.7,6673.5,6690,6717.4,2683.4,2693.6,2564.3,605.6,606.5,663,6.1,6.1,6.7 302 | Feb-2003,9372.7,9405.4,9372.6,6680.5,6709.8,6744.8,2692.2,2695.7,2627.8,604.4,595.3,673.2,6.1,6,6.7 303 | Mar-2003,9376,9359.1,9362.1,6678,6665,6642,2697.9,2694.1,2720.1,604.5,610.3,642.9,6.1,6.1,6.4 304 | Apr-2003,9370,9357.1,9365.6,6669.4,6656.2,6623,2700.5,2700.9,2742.6,604.4,599.4,608.9,6.1,6,6.1 305 | May-2003,9363,9375.2,9380.1,6662.5,6679.3,6647.9,2700.5,2695.9,2732.2,603.4,604.4,605.9,6.1,6.1,6.1 306 | Jun-2003,9362,9351.2,9370.4,6663.7,6637.5,6601.4,2698.3,2713.7,2769.1,600.9,602.3,587.6,6,6.1,5.9 307 | Jul-2003,9369.7,9342.9,9363.9,6674.8,6663.7,6693.2,2694.9,2679.1,2670.8,596.2,609.1,557.6,6,6.1,5.6 308 | Aug-2003,9385.2,9398.9,9327,6694.7,6705.2,6631.1,2690.5,2693.7,2695.8,589.4,581.3,552.4,5.9,5.8,5.6 309 | Sep-2003,9403.6,9408.5,9486.1,6718.5,6718,6814.2,2685,2690.5,2671.9,582,577,583.8,5.8,5.8,5.8 310 | Oct-2003,9421.8,9431.9,9447.8,6742.2,6750.4,6744.6,2679.6,2681.5,2703.1,574.9,577.8,544.3,5.8,5.8,5.4 311 | Nov-2003,9438.2,9429.7,9427.7,6763.1,6763.8,6760.3,2675.2,2666,2667.4,569.1,565.6,523.4,5.7,5.7,5.3 312 | Dec-2003,9452,9459.6,9573.6,6778.7,6775.4,6898.1,2673.2,2684.2,2675.5,564.3,569.3,563.4,5.6,5.7,5.6 313 | Jan-2004,9463.7,9462.7,9363.8,6789.1,6805.1,6827.2,2674.6,2657.6,2536.6,559.7,553.2,603.8,5.6,5.5,6.1 314 | Feb-2004,9475.4,9464.8,9434.5,6796.7,6778.3,6818.3,2678.7,2686.5,2616.2,555.1,565.7,640.8,5.5,5.6,6.4 315 | Mar-2004,9487.9,9498.2,9506.4,6803.2,6818.6,6796,2684.8,2679.6,2710.4,551.2,545.2,575.9,5.5,5.4,5.7 316 | Apr-2004,9500.2,9507.8,9512,6809.2,6813.5,6778.7,2691,2694.2,2733.4,549.7,553.3,561.8,5.5,5.5,5.6 317 | May-2004,9512.9,9524.2,9533.5,6816.4,6814.2,6785.4,2696.4,2710.1,2748,550.1,535.7,538.1,5.5,5.3,5.3 318 | Jun-2004,9528,9528.7,9543.3,6826.2,6831.5,6793.7,2701.8,2697.2,2749.6,550.9,550.2,537.3,5.5,5.5,5.3 319 | Jul-2004,9547.3,9537.4,9553.1,6839.5,6837.9,6865,2707.8,2699.5,2688.1,550.4,559.8,512.3,5.5,5.5,5.1 320 | Aug-2004,9571.3,9533.6,9462.1,6855.7,6846,6773,2715.7,2687.6,2689.1,547.2,558,529.4,5.4,5.5,5.3 321 | Sep-2004,9600.3,9591.1,9668.6,6874.7,6860,6956.7,2725.6,2731.1,2711.9,540.9,544.6,551.3,5.3,5.4,5.4 322 | Oct-2004,9633.1,9645.4,9662.2,6896.4,6910.6,6900.9,2736.7,2734.8,2761.3,532.8,519.9,490.1,5.2,5.1,4.8 323 | Nov-2004,9669,9678.9,9652.9,6920.7,6924.7,6928.2,2748.2,2754.3,2724.8,525.7,526.8,485.9,5.2,5.2,4.8 324 | Dec-2004,9706.2,9692,9807.8,6946.8,6936.5,7059.5,2759.4,2755.5,2748.3,521.9,517,514.1,5.1,5.1,5 325 | Jan-2005,9742.5,9741.6,9634.4,6973.2,6965.3,6974.7,2769.3,2776.3,2659.7,522.2,520.2,568.9,5.1,5.1,5.6 326 | Feb-2005,9776.1,9774.3,9744.6,6998.3,7012.6,7057.6,2777.8,2761.7,2687,524.6,523.1,592,5.1,5.1,5.7 327 | Mar-2005,9807.3,9815.5,9828.3,7021.6,7014.5,6990.9,2785.7,2801,2837.4,526.6,533.5,565.3,5.1,5.2,5.4 328 | Apr-2005,9836.3,9854.1,9856.3,7042.7,7061.4,7025.6,2793.5,2792.7,2830.7,526.3,531.2,539.5,5.1,5.1,5.2 329 | May-2005,9862.5,9838.8,9850.8,7059.8,7033.2,7005.5,2802.8,2805.6,2845.2,524.3,527.5,530.7,5,5.1,5.1 330 | Jun-2005,9885,9884.8,9896.6,7071.4,7086.9,7047.2,2813.6,2797.9,2849.4,521.4,514.4,502.5,5,4.9,4.8 331 | Jul-2005,9904,9899.4,9912.3,7078,7077.6,7104,2825.9,2821.8,2808.3,518.4,517.3,473.6,5,5,4.6 332 | Aug-2005,9919.2,9942.8,9870.3,7081.8,7095.6,7023,2837.4,2847.2,2847.4,517,513.4,486.6,5,4.9,4.7 333 | Sep-2005,9929.9,9927.8,10004.6,7085,7082.5,7180.7,2844.9,2845.3,2823.8,518.5,522.6,527.7,5,5,5 334 | Oct-2005,9937.7,9932.7,9949.7,7089.4,7063.8,7048.6,2848.3,2868.9,2901.1,522.2,523.5,494,5,5,4.7 335 | Nov-2005,9945,9945,9945,7096.4,7107.9,7109.2,2848.6,2837.1,2835.8,526.7,516.1,476.4,5,4.9,4.6 336 | Dec-2005,9954.9,9957,10074.7,7106,7099,7221,2848.9,2858,2853.7,530,531.5,525.8,5.1,5.1,5 337 | Jan-2006,9969.9,9951.6,9842.7,7118.1,7130.6,7133,2851.8,2821,2709.7,531.1,541.7,591.5,5.1,5.2,5.7 338 | Feb-2006,9990.6,9991.9,9961.1,7131.4,7136.7,7184,2859.2,2855.2,2777.1,529.2,536.8,606.7,5,5.1,5.7 339 | Mar-2006,10016.3,10033.6,10048.7,7146.1,7139.1,7115.2,2870.2,2894.5,2933.4,524.6,512.6,542.8,5,4.9,5.1 340 | Apr-2006,10046.6,10040.4,10041,7164.4,7158.2,7122.5,2882.3,2882.2,2918.5,518.6,523.7,533,4.9,5,5 341 | May-2006,10080.5,10069,10082.1,7187.4,7182.9,7157.8,2893.2,2886.2,2924.3,512.3,506.5,509.9,4.8,4.8,4.8 342 | Jun-2006,10114.4,10108.6,10120.8,7213.3,7208.4,7169.6,2901.2,2900.2,2951.2,506.7,510.2,498.2,4.8,4.8,4.7 343 | Jul-2006,10146.2,10159.8,10170.8,7238.6,7244.6,7268.2,2907.6,2915.2,2902.6,501.9,495.7,454.6,4.7,4.7,4.3 344 | Aug-2006,10174.4,10177.5,10105.8,7261.1,7268.4,7196.8,2913.3,2909.1,2909,497.5,504,477.5,4.7,4.7,4.5 345 | Sep-2006,10198.9,10222.6,10299.5,7279.6,7307.4,7409.7,2919.4,2915.2,2889.8,493.6,500,504.5,4.6,4.7,4.7 346 | Oct-2006,10219.7,10195.4,10212.4,7295.9,7270.9,7251,2923.8,2924.6,2961.4,491.1,475.5,449.6,4.6,4.5,4.2 347 | Nov-2006,10238.6,10225.7,10201.6,7312.5,7298.2,7307.1,2926.1,2927.5,2894.5,490.4,483.3,446.7,4.6,4.5,4.2 348 | Dec-2006,10258.7,10281.9,10404.3,7332,7341.7,7465.7,2926.7,2940.2,2938.6,490.2,492,487,4.6,4.6,4.5 349 | Jan-2007,10282.2,10270.4,10156.1,7355.6,7352.6,7345.6,2926.6,2917.9,2810.6,489.6,490.2,534.5,4.5,4.6,5 350 | Feb-2007,10308.7,10306.8,10277,7381.9,7380.8,7429.2,2926.8,2926,2847.7,487.2,500.3,567.2,4.5,4.6,5.2 351 | Mar-2007,10336.8,10336.3,10349.2,7408.7,7418.6,7393.4,2928.1,2917.7,2955.8,483,482.1,512,4.5,4.5,4.7 352 | Apr-2007,10366.1,10364.9,10362.9,7432.5,7416.1,7379.3,2933.7,2948.7,2983.6,477.2,474.8,483.4,4.4,4.4,4.5 353 | May-2007,10395.2,10401.5,10412,7452.3,7475.4,7452.2,2942.9,2926.1,2959.8,471,462.5,465.3,4.3,4.3,4.3 354 | Jun-2007,10423.9,10423.5,10436.3,7470.2,7464.1,7424.8,2953.7,2959.4,3011.5,466.8,471,459,4.3,4.3,4.2 355 | Jul-2007,10450.8,10445.4,10456.8,7487.6,7483.2,7506.1,2963.2,2962.3,2950.8,465.9,463.5,426.1,4.3,4.2,3.9 356 | Aug-2007,10475.6,10482.6,10406.4,7504.7,7511.4,7437.7,2970.9,2971.2,2968.7,468.4,471.5,446.8,4.3,4.3,4.1 357 | Sep-2007,10500.5,10512.8,10588.8,7522.7,7497.7,7602.7,2977.8,3015.1,2986.1,472.3,461.8,465.6,4.3,4.2,4.2 358 | Oct-2007,10526.4,10503.6,10520.5,7541.9,7561.3,7537.9,2984.4,2942.3,2982.6,474.3,474.1,449.4,4.3,4.3,4.1 359 | Nov-2007,10554.9,10558.2,10535.1,7561.9,7563.2,7574.5,2993,2995,2960.6,473.1,488.4,451.3,4.3,4.4,4.1 360 | Dec-2007,10585.1,10581.9,10710.1,7581,7582.2,7710.1,3004.1,2999.7,3000.1,469.4,476.3,470.8,4.2,4.3,4.2 361 | Jan-2008,10615.1,10618,10524.9,7596.1,7579.4,7618.1,3019,3038.6,2906.8,464.9,467.5,503.3,4.2,4.2,4.6 362 | Feb-2008,10642.6,10647.9,10622.9,7608.4,7633.5,7684.7,3034.3,3014.4,2938.2,462.2,440.8,500.4,4.2,4,4.5 363 | Mar-2008,10667.4,10669.2,10677.4,7622.1,7623.5,7596.2,3045.3,3045.8,3081.2,462,451,479.7,4.2,4.1,4.3 364 | Apr-2008,10689.8,10707.1,10706.2,7640.9,7635.3,7599.3,3048.8,3071.8,3106.9,464.2,476.3,484.1,4.2,4.3,4.3 365 | May-2008,10711.2,10680,10690.3,7665.3,7633.2,7613.6,3045.9,3046.8,3076.7,467.3,475.2,478.3,4.2,4.3,4.3 366 | Jun-2008,10732.4,10732.7,10745,7691.1,7672.8,7631.9,3041.3,3059.9,3113.1,469.8,475.7,462.7,4.2,4.2,4.1 367 | Jul-2008,10751.8,10749.7,10762,7712.3,7746.2,7768.3,3039.6,3003.5,2993.6,470.5,476.7,439.8,4.2,4.2,3.9 368 | Aug-2008,10767.8,10791.6,10710.4,7724.7,7761.3,7684.6,3043.1,3030.3,3025.8,470.9,451.3,429.4,4.2,4,3.9 369 | Sep-2008,10779.6,10776.6,10854.6,7727.7,7720.8,7830.7,3051.9,3055.8,3023.9,473.8,482.2,484.9,4.2,4.3,4.3 370 | Oct-2008,10786.5,10786.5,10807.4,7720,7701.9,7677.2,3066.6,3084.6,3130.2,484.5,482.9,458.7,4.3,4.3,4.1 371 | Nov-2008,10789.4,10778.6,10757.3,7706.1,7703.1,7717.2,3083.3,3075.6,3040.1,504.3,502.8,465.9,4.5,4.5,4.2 372 | Dec-2008,10790.1,10789.2,10915.6,7691.2,7665.4,7790.4,3099,3123.8,3125.2,531.6,516.4,506.5,4.7,4.6,4.4 373 | Jan-2009,10789.7,10790.4,10681,7678.1,7721,7728.3,3111.6,3069.4,2952.7,563.8,556.6,600,5,4.9,5.3 374 | Feb-2009,10787.6,10803.3,10776.7,7666.1,7662.1,7710,3121.5,3141.2,3066.8,596.5,604.3,683.9,5.2,5.3,6 375 | Mar-2009,10783.8,10770,10775.2,7652.1,7618.8,7590.8,3131.7,3151.2,3184.4,625,652.4,693,5.5,5.7,6 376 | Apr-2009,10779.1,10792.8,10792.7,7635.4,7664.9,7629.3,3143.7,3127.9,3163.4,646,628.9,637,5.7,5.5,5.6 377 | May-2009,10775.8,10772.3,10786.8,7617.7,7615.9,7602.8,3158.1,3156.3,3184,657.5,663.8,667.5,5.8,5.8,5.8 378 | Jun-2009,10775.6,10754.3,10770.9,7601.3,7596.7,7558.3,3174.3,3157.7,3212.7,660.7,670.2,654.7,5.8,5.9,5.7 379 | Jul-2009,10779.8,10797.2,10808.8,7588.5,7595,7615.7,3191.4,3202.2,3193.1,658.9,648.7,601.7,5.8,5.7,5.3 380 | Aug-2009,10790.4,10787.3,10707.3,7582,7569.8,7497.2,3208.4,3217.5,3210.1,654.8,653.1,623.5,5.7,5.7,5.5 381 | Sep-2009,10808,10808.7,10882.1,7581.9,7578.1,7689.1,3226.2,3230.6,3193,648.9,647.3,647.2,5.7,5.7,5.6 382 | Oct-2009,10831.4,10818.8,10845.2,7588.1,7580.7,7556.1,3243.3,3238.1,3289.1,641.2,643.9,613.7,5.6,5.6,5.4 383 | Nov-2009,10858,10849.1,10829.2,7598.5,7606.7,7624.6,3259.4,3242.4,3204.6,633.3,637.5,593.4,5.5,5.5,5.2 384 | Dec-2009,10882.7,10888,11010.9,7609.9,7617.4,7739,3272.8,3270.6,3272,627.4,632,619.1,5.5,5.5,5.3 385 | Jan-2010,10903.1,10933.8,10809.9,7622.5,7636.1,7630.2,3280.6,3297.7,3179.7,622.9,607.3,654.1,5.4,5.3,5.7 386 | Feb-2010,10918.2,10918.7,10889.2,7635.4,7621,7666.2,3282.8,3297.7,3222.9,620,610.7,690.5,5.4,5.3,6 387 | Mar-2010,10929.6,10925.1,10928.9,7648.8,7635.1,7607.1,3280.8,3290,3321.8,618.2,626.4,666.6,5.4,5.4,5.7 388 | Apr-2010,10942.2,10935.7,10940.1,7665.6,7676.3,7642.9,3276.6,3259.3,3297.2,615.4,635.9,642.7,5.3,5.5,5.5 389 | May-2010,10959.6,10938.4,10957.4,7686.3,7693.6,7685.5,3273.4,3244.8,3271.9,611.3,602.7,604.6,5.3,5.2,5.2 390 | Jun-2010,10984.4,10991.9,11009.3,7710.6,7711.9,7673.6,3273.8,3280,3335.6,606.8,596.9,580.3,5.2,5.2,5 391 | Jul-2010,11015.8,11016.5,11030.5,7737.5,7710.8,7732.4,3278.3,3305.7,3298.1,602.6,614.6,572,5.2,5.3,4.9 392 | Aug-2010,11051.3,11058.4,10973.8,7765,7775.2,7699.9,3286.3,3283.2,3273.9,599.4,584.6,559.3,5.1,5,4.8 393 | Sep-2010,11086.4,11086,11159.4,7790.9,7814.2,7928.2,3295.5,3271.8,3231.2,597.7,589.6,592.1,5.1,5,5 394 | Oct-2010,11119,11102.7,11129,7816.1,7791.2,7765.3,3302.9,3311.5,3363.7,596.2,619.3,589.8,5.1,5.3,5 395 | Nov-2010,11147.3,11161.7,11144.5,7841,7856.9,7877.1,3306.4,3304.8,3267.4,593.6,599.8,558.2,5.1,5.1,4.8 396 | Dec-2010,11169.1,11171,11295,7861.9,7857.1,7980.7,3307.2,3313.9,3314.3,589.9,571.7,561.5,5,4.9,4.7 397 | Jan-2011,11183.3,11196.2,11063.7,7877,7859.7,7839.3,3306.3,3336.5,3224.3,586.1,589.1,631.1,5,5,5.4 398 | Feb-2011,11189.8,11173.7,11146.2,7885.9,7894.1,7938.4,3303.9,3279.6,3207.8,582.7,585,662.7,4.9,5,5.6 399 | Mar-2011,11190.8,11214.7,11217,7889.3,7930.5,7902.3,3301.5,3284.2,3314.7,581,580.8,619.2,4.9,4.9,5.2 400 | Apr-2011,11190.1,11180,11186.5,7887.5,7881.5,7848.8,3302.6,3298.5,3337.8,582.6,583.6,588.2,4.9,5,5 401 | May-2011,11192.1,11172.4,11196.2,7884.4,7835.2,7830.8,3307.7,3337.1,3365.4,587.4,588.6,589.8,5,5,5 402 | Jun-2011,11199.6,11204.6,11221.3,7883.2,7906.5,7869.8,3316.4,3298.1,3351.4,594.1,580.9,564.2,5,4.9,4.8 403 | Jul-2011,11210.2,11208.5,11227.5,7883.8,7882.6,7906.9,3326.4,3325.8,3320.6,602.2,600.9,562.6,5.1,5.1,4.8 404 | Aug-2011,11222.7,11218.7,11130.6,7887.6,7886,7809.3,3335.1,3332.7,3321.3,610.1,622.4,597,5.2,5.3,5.1 405 | Sep-2011,11234.1,11249.4,11321,7894.4,7899.1,8013.9,3339.6,3350.3,3307.1,615.3,618.6,620.5,5.2,5.2,5.2 406 | Oct-2011,11244,11250.5,11273.9,7903.1,7917,7890.6,3340.8,3333.5,3383.3,617.5,615.7,588.7,5.2,5.2,5 407 | Nov-2011,11252.1,11252.6,11240.3,7912.3,7883.3,7906.9,3339.8,3369.4,3333.4,616.8,619.7,578.1,5.2,5.2,4.9 408 | Dec-2011,11262.1,11233.1,11354.4,7923.5,7918.5,8040.7,3338.7,3314.6,3313.7,614.1,613.9,601.7,5.2,5.2,5 409 | Jan-2012,11275.9,11299.2,11158.7,7936.4,7957.2,7921.6,3339.5,3342,3237.1,611.4,599.2,642,5.1,5,5.4 410 | Feb-2012,11292.5,11266.7,11235.6,7947.5,7946,7986.9,3344.9,3320.6,3248.8,610.4,618,699.1,5.1,5.2,5.9 411 | Mar-2012,11309.5,11330.3,11331.9,7955.2,7964.6,7936.8,3354.3,3365.7,3395.2,610.2,618.4,659.4,5.1,5.2,5.5 412 | Apr-2012,11324.4,11315.6,11328.7,7959,7941.1,7911,3365.4,3374.5,3417.7,610.7,595.3,599,5.1,5,5 413 | May-2012,11336,11360.8,11390,7961.7,7984.3,7983.7,3374.3,3376.5,3406.3,613.2,621.3,620.4,5.1,5.2,5.2 414 | Jun-2012,11344.9,11334.4,11352.5,7967,7957.7,7924,3377.9,3376.7,3428.5,617.8,619.4,598.8,5.2,5.2,5 415 | Jul-2012,11351.9,11341.4,11365.1,7976.4,7961.2,7987.7,3375.5,3380.2,3377.4,623.9,619.5,582.8,5.2,5.2,4.9 416 | Aug-2012,11358.9,11352.6,11260.8,7989.2,7974.4,7895.2,3369.7,3378.3,3365.5,630.7,614.5,590.1,5.3,5.1,5 417 | Sep-2012,11368.2,11384.1,11453.7,8003.4,8021,8134.7,3364.8,3363.1,3319,636.8,658.7,660.5,5.3,5.5,5.5 418 | Oct-2012,11381.6,11385.1,11402,8015.8,8034.8,8005.8,3365.8,3350.4,3396.2,641.3,651.1,623.1,5.3,5.4,5.2 419 | Nov-2012,11397.3,11380.7,11373.9,8023.4,8014.6,8040.2,3373.9,3366.1,3333.7,645.1,629.7,588.7,5.4,5.2,4.9 420 | Dec-2012,11413.6,11395.4,11516.4,8025.4,8006.4,8130.2,3388.2,3388.9,3386.2,649.4,652,637.1,5.4,5.4,5.2 421 | Jan-2013,11428.3,11451.8,11301,8022,8055.7,7998.3,3406.3,3396.1,3302.6,654.7,650,695.7,5.4,5.4,5.8 422 | Feb-2013,11440.6,11460.5,11420.1,8015.8,8006.2,8042.6,3424.8,3454.3,3377.5,661.4,655.1,740,5.5,5.4,6.1 423 | Mar-2013,11449.2,11428.2,11431.5,8008.9,7988.5,7962.1,3440.3,3439.7,3469.5,669.5,681.3,725,5.5,5.6,6 424 | Apr-2013,11453.3,11457.8,11475.4,8003.1,8017.4,7989.5,3450.2,3440.4,3485.9,677.7,678.8,681.9,5.6,5.6,5.6 425 | May-2013,11454.4,11450.6,11485.4,7998.5,7997.4,7999.9,3455.8,3453.2,3485.5,684.1,678,675.8,5.6,5.6,5.6 426 | Jun-2013,11455.2,11463.5,11485.8,7995.7,7991.3,7962.2,3459.5,3472.2,3523.7,688.8,695.9,672.2,5.7,5.7,5.5 427 | Jul-2013,11456.3,11447.6,11473.8,7992.7,7983.9,8011.2,3463.5,3463.7,3462.6,692.3,684,645.9,5.7,5.6,5.3 428 | Aug-2013,11455.7,11448.5,11355.6,7986.4,7990.7,7911.9,3469.3,3457.7,3443.7,695.4,705.8,679.5,5.7,5.8,5.6 429 | Sep-2013,11451.5,11466,11533,7974.5,7998.9,8112.4,3477,3467.1,3420.6,698.9,689.6,692,5.8,5.7,5.7 430 | Oct-2013,11446.1,11461.9,11476.5,7960.3,7960,7930.2,3485.8,3501.9,3546.2,703,707.2,679.1,5.8,5.8,5.6 431 | Nov-2013,11444.8,11443.7,11439.8,7947.9,7952.6,7979.9,3496.9,3491.1,3459.9,707,701.2,656.5,5.8,5.8,5.4 432 | Dec-2013,11449.8,11416.3,11531.2,7941.8,7909,8028.9,3508,3507.3,3502.3,710.1,712.4,693.8,5.8,5.9,5.7 433 | Jan-2014,11461.5,11452.8,11316.8,7944.8,7937.7,7924.9,3516.7,3515.1,3391.9,712.1,720.1,770.8,5.9,5.9,6.4 434 | Feb-2014,11477.8,11478.7,11457.5,7956.8,7959,8056.8,3521,3519.7,3400.6,714.1,713.8,836.2,5.9,5.9,6.8 435 | Mar-2014,11495.9,11522.5,11528.4,7974.6,7983.1,7959.2,3521.3,3539.4,3569.2,717.5,718.3,766.4,5.9,5.9,6.2 436 | Apr-2014,11512.4,11526.2,11547.2,7992.6,8000.4,7974.2,3519.8,3525.8,3573.1,722.8,712.6,713.4,5.9,5.8,5.8 437 | May-2014,11524.1,11505.2,11546.1,8006.4,8013.6,8019.9,3517.7,3491.6,3526.3,730.9,722.2,717,6,5.9,5.8 438 | Jun-2014,11529.8,11522.5,11546.4,8013.3,7998.9,7972.3,3516.4,3523.6,3574.1,741.6,747.6,721.2,6,6.1,5.9 439 | Jul-2014,11531.9,11539.2,11533.9,8014,8026.3,8040,3518,3512.9,3493.9,752.6,765.8,740.6,6.1,6.2,6 440 | Aug-2014,11533.5,11545.3,11565.4,8011,8016,7960.2,3522.5,3529.3,3605.2,761.6,752.6,733.1,6.2,6.1,6 441 | Sep-2014,11537.1,11544.2,11525.8,8006.7,8006,7973.9,3530.3,3538.2,3551.9,767.4,765.4,745.8,6.2,6.2,6.1 442 | Oct-2014,11546,11529.6,11541.7,8005.4,8006.7,7976.7,3540.6,3522.9,3565,770,781.3,750.3,6.3,6.3,6.1 443 | Nov-2014,11561.6,11543.5,11572.3,8009.9,7986.8,8007.6,3551.7,3556.7,3564.7,770.5,772.1,722.6,6.2,6.3,5.9 444 | Dec-2014,11584.3,11591.2,11703.9,8020.8,8027.1,8147.3,3563.5,3564.1,3556.6,769.8,749.5,731.3,6.2,6.1,5.9 445 | Jan-2015,11611.9,11598.3,11456,8036.2,8025.7,7999.9,3575.7,3572.6,3456.1,767,782.8,836.3,6.2,6.3,6.8 446 | Feb-2015,11640.2,11664.9,11712.4,8053.9,8062.5,8146.8,3586.3,3602.5,3565.6,763,764.4,836.6,6.2,6.1,6.7 447 | Mar-2015,11665.8,11679.5,11686.9,8070.4,8092.5,8070.7,3595.4,3587.1,3616.2,759.7,758.6,808.4,6.1,6.1,6.5 448 | Apr-2015,11686.5,11674.5,11697.8,8083.6,8075.6,8050.9,3602.9,3598.9,3646.9,759.3,765.9,764.7,6.1,6.2,6.1 449 | May-2015,11703.3,11702.9,11767.9,8093.5,8083.6,8102.3,3609.8,3619.3,3665.5,761.7,736.5,730.3,6.1,5.9,5.8 450 | Jun-2015,11720.3,11714.1,11738.9,8101.9,8104,8078.2,3618.4,3610,3660.7,765.7,756.7,729.8,6.1,6.1,5.9 451 | Jul-2015,11742,11749.7,11746.5,8113.1,8124.5,8140.6,3628.9,3625.2,3605.9,768,795.3,770.7,6.1,6.3,6.2 452 | Aug-2015,11769.5,11767.5,11687.4,8128,8115.7,8044.2,3641.5,3651.8,3643.3,767.5,769.7,761.1,6.1,6.1,6.1 453 | Sep-2015,11801.4,11774.5,11755.9,8146.5,8133.7,8099.3,3654.9,3640.7,3656.6,762.8,771.2,753.4,6.1,6.1,6 454 | Oct-2015,11833.2,11836.6,11848.7,8165.3,8164.1,8133.1,3667.9,3672.5,3715.5,754.8,746.2,715.1,6,5.9,5.7 455 | Nov-2015,11861.6,11887.6,11917.7,8180.8,8189.6,8210.8,3680.8,3698.1,3706.9,745.4,737.2,689.4,5.9,5.8,5.5 456 | Dec-2015,11883.9,11892.6,12005.5,8189.1,8212.2,8335.7,3694.7,3680.4,3669.7,736.4,720.8,703.8,5.8,5.7,5.5 457 | Jan-2016,11898.2,11889.1,11739.5,8189.4,8177,8140.9,3708.8,3712,3598.6,730.1,761.2,815.1,5.8,6,6.5 458 | Feb-2016,11906.6,11904.8,11951.2,8183.1,8194.2,8277.6,3723.5,3710.6,3673.5,726.5,719.5,787.4,5.8,5.7,6.2 459 | Mar-2016,11912.8,11914,11920.8,8175,8169.9,8147.9,3737.8,3744.1,3772.9,724.5,714.5,761.9,5.7,5.7,6 460 | Apr-2016,11920,11913.9,11940.5,8167.5,8151.2,8128.1,3752.5,3762.7,3812.4,724.1,720.9,719.2,5.7,5.7,5.7 461 | May-2016,11928,11919.8,11971.2,8159.7,8139.4,8149,3768.3,3780.4,3822.2,723.6,722.9,715.7,5.7,5.7,5.6 462 | Jun-2016,11934.4,11933.6,11960.7,8150.8,8190.9,8166.8,3783.5,3742.7,3794,722.7,730.6,704.2,5.7,5.8,5.6 463 | Jul-2016,11938.6,11965.7,11962.3,8143,8149.5,8167,3795.7,3816.2,3795.2,721.7,731.3,708.9,5.7,5.8,5.6 464 | Aug-2016,11942.7,11948.3,11868.9,8137.4,8147.5,8077.4,3805.3,3800.8,3791.5,720.4,717.5,707.8,5.7,5.7,5.6 465 | Sep-2016,11948,11925.3,11908.9,8134.8,8083.2,8048.6,3813.2,3842.1,3860.4,718.8,712.6,696.3,5.7,5.6,5.5 466 | Oct-2016,11955.4,11936.9,11950.7,8136,8129.3,8097.5,3819.4,3807.6,3853.1,719.8,707.3,676.2,5.7,5.6,5.4 467 | Nov-2016,11966.4,11983.1,12015.6,8142.5,8173.5,8196.8,3824,3809.6,3818.8,724.4,730.7,683.8,5.7,5.7,5.4 468 | Dec-2016,11984.4,11998.9,12105.3,8156.2,8189.3,8310.2,3828.2,3809.7,3795.1,730.6,737.8,722.5,5.7,5.8,5.6 469 | Jan-2017,12009.4,12003.6,11840.4,8175.1,8131.1,8073.4,3834.3,3872.5,3767,735.8,724.3,776,5.8,5.7,6.2 470 | Feb-2017,12038,12011.5,12054.9,8195.8,8174.6,8256.2,3842.2,3837,3798.7,737.8,747.2,818.4,5.8,5.9,6.4 471 | Mar-2017,12067.7,12064.5,12072,8217.5,8241.1,8220.2,3850.1,3823.4,3851.9,736.8,751.1,801.4,5.8,5.9,6.2 472 | Apr-2017,12097,12110.7,12139.2,8239.3,8235.4,8213.4,3857.7,3875.3,3925.8,734,730.5,728.8,5.7,5.7,5.7 473 | May-2017,12122.1,12152.6,12205.9,8258.5,8287.4,8297.3,3863.6,3865.2,3908.7,729.2,711.9,703.4,5.7,5.5,5.4 --------------------------------------------------------------------------------