diff --git a/1st_copy/NOTES.md b/1st_copy/NOTES.md new file mode 100644 index 0000000..26b7bb2 --- /dev/null +++ b/1st_copy/NOTES.md @@ -0,0 +1,114 @@ +### objective + +env: Windows +deadline 23/12 + + +### CAUTION +Do not include any code not written by you in your +project. You are NOT allowed to import any Python libraries in your solution except the +modules namely os (https://docs.python.org/3/library/os.html), sys +(https://docs.python.org/3/library/sys.html) and csv (https://docs.python.org/3/library/csv.html). If +cheating is found or the import requirement is violated, you will receive a zero mark. + + +### Deliverable +You have to include your student name and ID in your source code and name your project solution as +“XXXXXXXX_project.py” (where XXXXXXXX is your 8-digit student ID). Please remember to +upload your source code solution to Moodle by the submission deadline. + + +### drill down + +Functions +Given the file of stock prices, you are asked to develop a Python program to process the data by +designing appropriate functions. At minimum you need to implement and call the following three +functions: +• get_data_list(csv_file_name) +This function has one parameter, namely csv_file_name. When the function is called, you +need to pass along a CSV file name which is used inside the function to open and read the CSV +file. After reading each row, it will be split into a list. The list will then be appended into a main +list (a list of lists), namely data_list. The data_list will be returned at the end of the +function. +2 +• get_monthly_averages(data_list) +This function has one parameter, namely data_list. You need to pass the data_list +generated by the get_data_list() function as the argument to this function and then +calculate the monthly average prices of the stock. The average monthly prices are calculated in +the following way. Suppose the volume and adjusted closing price of a trading day are V1 and C1, +respectively. The total sale of that day equals V1 x C1. Now, suppose the volume and adjusted +closing price of another trading day are V2 and C2, respectively. The average of these two trading +days is the sum of the total sales divided by the total volume: +Average price = (V1 x C1 + V2 x C2) / (V1 + V2) +To average a whole month, you need to add up the total sales (V1 x C1 + V2 x C2 + ... + +Vn x Cn) for each day and divide it by the sum of all volumes (V1 + V2 + ... + Vn) where n +is the number of trading days in the month. +A tuple with 2 items, including the date (year and month only) and the average for that month, +will be generated for each month. The tuple for each month will be appended to a main list, +namely monthly_averages_list. The monthly_averages_list will be returned at +the end of the function. +• get_moving_averages(monthly_averages_list) +This function has one parameter, namely monthly_averages_list. You need to pass the +monthly_averages_list generated by get_monthly_averages() as the argument +to this function and then calculate the 5-month exponential moving average (EMA) stock prices. +In general, the EMA for a particular month can be calculated by the following formula: +EMA = (Monthly average price – previous month’s EMA) x smoothing constant ++ previous month’s EMA +where +smoothing constant = 2 / (number of time periods in months + 1) +3 +For example, the following table shows the stock prices between Oct 2020 and Apr 2021: +Month Monthly Average Price +Oct 2020 14 +Nov 2020 13 +Dec 2020 14 +Jan 2021 12 +Feb 2021 13 +Mar 2021 12 +Apr 2021 11 +The initial 5-month EMA for Feb 2021 can be calculated by the simple average formula, as +shown below: +5-month EMA for Feb 2021 = (14 + 13 + 14 + 12 + 13) / 5 = 13.2 +The 5-month EMA for Mar 2021 can be calculated by the EMA formula, as shown below: +5-month EMA for Mar 2021 = (Monthly average price – previous month’s EMA) x +smoothing constant + previous month’s EMA += (12 – 13.2) x (2 / 6) + 13.2 += 12.8 +The 5-month EMA for Apr 2021 can be calculated by the EMA formula, as shown below: +5-month EMA for Apr 2021 = (Monthly average price – previous month’s EMA) x +smoothing constant + previous month’s EMA += (11 – 12.8) x (2 / 6) + 12.8 += 12.2 +The resulting 5-month EMA stock prices are shown below: +Month Average Price 5-month EMA Price +Oct 2020 14 - +Nov 2020 13 - +Dec 2020 14 - +Jan 2021 12 - +Feb 2021 13 13.2 +Mar 2021 12 12.8 +Apr 2021 11 12.2 +4 +A tuple with 2 items, including the date (year and month only) and the 5-month EMA price for +that month, will be generated for each month except the first 4 months. Each tuple will be +appended to a main list, namely moving_averages_list. The +moving_averages_list will be returned at the end of the function. + + +Program Input and Output +At the outset, your program needs to ask the user for a CSV file name: +Based on the entered CSV file name, a corresponding output text file (e.g. “Google_output.txt” +for this case) will be generated. In the output file, you are eventually required to print the best month +(with the highest EMA price) and the worst month (with the lowest EMA price) for the stock. You +need to first print a header line for the stock, and then print a date (MM-YYYY), a comma followed by +a moving average price (in 2 decimal places) on another line. You must follow the output format as +shown below (please note the values are not true, which are for reference only) + + +IV. Evaluation Criteria (40% of Overall Course Assessment) +The project will be graded using the following criteria: +• 15% - Correctness of program execution and output data +• 10% - Modularization (e.g. dividing the program functionality into different functions) +• 5% - Error handling +• 5% - Consistent style (e.g., capitalization, indenting, etc.) +• 5% - Appropriate comments \ No newline at end of file diff --git a/1st_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf b/1st_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf new file mode 100644 index 0000000..59f365f Binary files /dev/null and b/1st_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf differ diff --git a/1st_copy/_ref/google.csv b/1st_copy/_ref/google.csv new file mode 100644 index 0000000..e4f28e7 --- /dev/null +++ b/1st_copy/_ref/google.csv @@ -0,0 +1,1031 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2008-09-19,461,462.07,443.28,449.15,449.15,10006000 +2008-09-18,422.64,439.18,410.5,439.08,439.08,8589400 +2008-09-17,438.48,439.14,413.44,414.49,414.49,9126900 +2008-09-16,425.96,449.28,425.49,442.93,442.93,6990700 +2008-09-15,424,441.97,423.71,433.86,433.86,6567400 +2008-09-12,430.21,441.99,429,437.66,437.66,6028000 +2008-09-11,408.35,435.09,406.38,433.75,433.75,6471400 +2008-09-10,424.47,424.48,409.68,414.16,414.16,6226800 +2008-09-09,423.17,432.38,415,418.66,418.66,7229600 +2008-09-08,452.02,452.94,417.55,419.95,419.95,9017900 +2008-09-05,445.49,452.46,440.08,444.25,444.25,4534300 +2008-09-04,460,463.24,449.4,450.26,450.26,4848500 +2008-09-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-09-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-08-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-08-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-08-27,473.73,474.83,464.84,468.58,468.58,4387100 +2008-08-26,483.46,483.46,470.59,474.16,474.16,3308200 +2008-08-25,486.11,497,481.5,483.01,483.01,2014300 +2008-08-22,491.5,494.88,489.48,490.59,490.59,2297200 +2008-08-21,482.92,489.9,479.27,486.53,486.53,3514100 +2008-08-20,494.72,496.69,482.57,485,485,3982100 +2008-08-19,490.43,498.28,486.63,490.5,490.5,3046500 +2008-08-18,509.84,510,495.51,498.3,498.3,3333900 +2008-08-15,506.99,510.66,505.5,510.15,510.15,3545700 +2008-08-14,497.7,507.61,496.29,505.49,505.49,2918600 +2008-08-13,501.6,503.54,493.88,500.03,500.03,3625500 +2008-08-12,502,506.13,498,502.61,502.61,2755700 +2008-08-11,492.47,508.88,491.78,500.84,500.84,4239300 +2008-08-08,480.15,495.75,475.69,495.01,495.01,3739300 +2008-08-07,482,484,476.41,479.12,479.12,2773800 +2008-08-06,478.37,489.77,472.51,486.34,486.34,3375800 +2008-08-05,467.59,480.08,466.33,479.85,479.85,3584500 +2008-08-04,468.12,473.01,461.9,463,463,2487000 +2008-08-01,472.51,473.22,462.5,467.86,467.86,3007900 +2008-07-31,474.56,480.89,471.44,473.75,473.75,2865100 +2008-07-30,485.5,486.02,472.81,482.7,482.7,3490700 +2008-07-29,479.3,487.26,478,483.11,483.11,2802800 +2008-07-28,492.09,492.09,475.13,477.12,477.12,3160000 +2008-07-25,486.49,493.13,481.5,491.98,491.98,3183500 +2008-07-24,496.7,496.87,475.62,475.62,475.62,3540900 +2008-07-23,481.61,497.23,478.1,489.22,489.22,4894100 +2008-07-22,466.72,480.25,465.6,477.11,477.11,4691500 +2008-07-21,480.88,484.09,465.7,468.8,468.8,5901500 +2008-07-18,498.35,498.98,478.19,481.32,481.32,11292400 +2008-07-17,534.16,537.05,524.5,533.44,533.44,8787400 +2008-07-16,514.04,536.5,510.6,535.6,535.6,4742200 +2008-07-15,516.28,527.5,501.1,516.09,516.09,6071000 +2008-07-14,539,540.06,515.45,521.62,521.62,4424800 +2008-07-11,536.5,539.5,519.43,533.8,533.8,4981400 +2008-07-10,545,549.5,530.72,540.57,540.57,4331700 +2008-07-09,550.76,555.68,540.73,541.55,541.55,4154000 +2008-07-08,545.99,555.19,540,554.53,554.53,4932400 +2008-07-07,542.3,549,535.6,543.91,543.91,4255200 +2008-07-03,530.88,539.23,527.5,537,537,2400500 +2008-07-02,536.51,540.38,526.06,527.04,527.04,4223000 +2008-07-01,519.58,536.72,517,534.73,534.73,4959900 +2008-06-30,532.47,538,523.06,526.42,526.42,3765300 +2008-06-27,527.68,530,515.09,528.07,528.07,5436900 +2008-06-26,544.1,544.93,528.26,528.82,528.82,5659500 +2008-06-25,544.97,557.8,543.67,551,551,4122200 +2008-06-24,545.14,551.19,535.1,542.3,542.3,4672600 +2008-06-23,545.36,553.15,542.02,545.21,545.21,3635900 +2008-06-20,556.98,556.98,544.51,546.43,546.43,5983100 +2008-06-19,555.35,563.78,550.81,560.2,560.2,5683100 +2008-06-18,564.51,568.99,559.16,562.38,562.38,3381200 +2008-06-17,576.35,578.07,568.38,569.46,569.46,3462900 +2008-06-16,566.5,579.1,566.5,572.81,572.81,3542800 +2008-06-13,561.49,575.7,561.34,571.51,571.51,6184400 +2008-06-12,548.76,558,546.88,552.95,552.95,5491600 +2008-06-11,556.24,557.34,544.46,545.2,545.2,3812900 +2008-06-10,549.56,558.82,546.78,554.17,554.17,3657400 +2008-06-09,568.06,570,545.4,557.87,557.87,5288300 +2008-06-06,579.75,580.72,567,567,567,4734500 +2008-06-05,577.08,588.04,576.21,586.3,586.3,3916700 +2008-06-04,565.33,578,564.55,572.22,572.22,3363200 +2008-06-03,576.5,580.5,560.61,567.3,567.3,4305300 +2008-06-02,582.5,583.89,571.27,575,575,3674200 +2008-05-30,583.47,589.92,581.3,585.8,585.8,3225200 +2008-05-29,574.79,585.88,573.2,583,583,4845000 +2008-05-28,567.94,571.49,561.1,568.24,568.24,4050400 +2008-05-27,544.96,562.6,543.85,560.9,560.9,3865500 +2008-05-23,546.96,553,537.81,544.62,544.62,4431500 +2008-05-22,551.95,554.21,540.25,549.46,549.46,5076300 +2008-05-21,578.52,581.41,547.89,549.99,549.99,6468100 +2008-05-20,574.63,582.48,572.91,578.6,578.6,3313600 +2008-05-19,578.55,588.88,573.52,577.52,577.52,5604500 +2008-05-16,581.43,584.68,578.32,580.07,580.07,4274100 +2008-05-15,579,582.95,575.61,581,581,4342700 +2008-05-14,586.49,591.19,575.25,576.3,576.3,4375800 +2008-05-13,586.23,587.95,578.55,583,583,5163500 +2008-05-12,574.75,586.75,568.91,584.94,584.94,4863900 +2008-05-09,579,585,571.3,573.2,573.2,4484900 +2008-05-08,586.2,589.3,578.91,583.01,583.01,5122900 +2008-05-07,590.27,599.49,576.43,579,579,6613000 +2008-05-06,591,592,583,586.36,586.36,4629300 +2008-05-05,598.86,599,587.13,594.9,594.9,6281000 +2008-05-02,598.49,602.45,579.3,581.29,581.29,6998800 +2008-05-01,578.31,594.93,576.97,593.08,593.08,6602800 +2008-04-30,562.21,584.86,558.47,574.29,574.29,7903000 +2008-04-29,550.83,563.4,550.01,558.47,558.47,4346000 +2008-04-28,545.88,556.81,539,552.12,552.12,4008600 +2008-04-25,549.02,553,542.73,544.06,544.06,4164400 +2008-04-24,551.29,554.49,540.02,543.04,543.04,4135100 +2008-04-23,557.94,559.31,540.95,546.49,546.49,4921500 +2008-04-22,537.57,560.83,537.56,555,555,7938500 +2008-04-21,539.39,542.59,530.29,537.79,537.79,7439700 +2008-04-18,535.21,547.7,524.77,539.41,539.41,18235600 +2008-04-17,455.63,459.37,446.52,449.54,449.54,13353000 +2008-04-16,444.4,458.28,441,455.03,455.03,7620200 +2008-04-15,458.13,459.72,443.72,446.84,446.84,4577600 +2008-04-14,457.16,457.45,450.15,451.66,451.66,3842600 +2008-04-11,464.07,467.26,455.01,457.45,457.45,4151500 +2008-04-10,464.96,473.86,461.85,469.08,469.08,5072400 +2008-04-09,469.13,472,457.54,464.19,464.19,6048100 +2008-04-08,473.04,474.14,462.01,467.81,467.81,4547000 +2008-04-07,477.03,485.44,473.53,476.82,476.82,5943500 +2008-04-04,457.01,477.83,456.2,471.09,471.09,5897200 +2008-04-03,461.73,463.29,448.13,455.12,455.12,6778400 +2008-04-02,469.9,475.74,460.39,465.7,465.7,5999000 +2008-04-01,447.74,466.5,446.87,465.71,465.71,6093100 +2008-03-31,435.64,442.69,432.01,440.47,440.47,4446400 +2008-03-28,447.46,453.57,434.31,438.08,438.08,4376200 +2008-03-27,446,448.61,440.49,444.08,444.08,5832200 +2008-03-26,452.59,462.87,449.29,458.19,458.19,5214200 +2008-03-25,457.46,457.47,446,450.78,450.78,5831600 +2008-03-24,438.43,465.78,437.72,460.56,460.56,6763500 +2008-03-20,427.32,435.7,417.5,433.55,433.55,9900400 +2008-03-19,441.11,447.5,431.67,432,432,6179000 +2008-03-18,428.98,440.84,425.53,439.16,439.16,7237200 +2008-03-17,427.99,433.71,412.11,419.87,419.87,7888200 +2008-03-14,442.98,449.34,430.62,437.92,437.92,6574400 +2008-03-13,432.67,446.98,428.78,443.01,443.01,7726600 +2008-03-12,440.01,447.88,438.07,440.18,440.18,6651900 +2008-03-11,425.26,440.15,424.65,439.84,439.84,8826900 +2008-03-10,428.83,431,413.04,413.62,413.62,7987600 +2008-03-07,428.88,440,426.24,433.35,433.35,8071800 +2008-03-06,447.69,453.3,431.18,432.7,432.7,7470100 +2008-03-05,445.25,454.17,444,447.7,447.7,7436600 +2008-03-04,450.95,453.36,435.78,444.6,444.6,13621700 +2008-03-03,471.51,472.72,450.11,457.02,457.02,7554500 +2008-02-29,471.87,479.74,464.65,471.18,471.18,9425400 +2008-02-28,470.5,479.09,467.36,475.39,475.39,6586900 +2008-02-27,460.13,475.49,459.64,472.86,472.86,10121900 +2008-02-26,461.2,466.47,446.85,464.19,464.19,23287300 +2008-02-25,505.95,506.5,485.74,486.44,486.44,8350800 +2008-02-22,502.06,509,497.55,507.8,507.8,5515900 +2008-02-21,512.85,513.21,499.5,502.86,502.86,5677800 +2008-02-20,503.51,511.01,498.82,509,509,6662200 +2008-02-19,534.94,535.06,506.5,508.95,508.95,6350400 +2008-02-15,528.31,532.66,524.33,529.64,529.64,5240100 +2008-02-14,538.35,541.04,531,532.25,532.25,6476700 +2008-02-13,522.5,534.99,518.69,534.62,534.62,6624700 +2008-02-12,523.39,530.6,513.03,518.09,518.09,6662300 +2008-02-11,520.52,523.71,513.4,521.16,521.16,5826000 +2008-02-08,509.41,517.73,508.7,516.69,516.69,6828900 +2008-02-07,496.86,514.19,494.76,504.95,504.95,7928900 +2008-02-06,511.14,511.17,497.93,501.71,501.71,7636400 +2008-02-05,489.43,509,488.52,506.8,506.8,11203300 +2008-02-04,509.07,512.78,492.55,495.43,495.43,13157100 +2008-02-01,528.67,536.67,510,515.9,515.9,17600500 +2008-01-31,539.01,573,534.29,564.3,564.3,14722000 +2008-01-30,549.19,560.43,543.51,548.27,548.27,7939600 +2008-01-29,560.47,561.33,540.67,550.52,550.52,6283000 +2008-01-28,570.97,572.24,548.6,555.98,555.98,5806100 +2008-01-25,591.81,595,566.18,566.4,566.4,6951800 +2008-01-24,558.8,579.69,554.14,574.49,574.49,9400900 +2008-01-23,560.71,568,519,548.62,548.62,16965700 +2008-01-22,562.03,597.5,561.2,584.35,584.35,9490200 +2008-01-18,608.36,609.99,598.45,600.25,600.25,8539600 +2008-01-17,620.76,625.74,598.01,600.79,600.79,8216800 +2008-01-16,628.97,639.99,601.93,615.95,615.95,10560000 +2008-01-15,645.9,649.05,635.38,637.65,637.65,5568200 +2008-01-14,651.14,657.4,645.25,653.82,653.82,4447500 +2008-01-11,642.7,649.47,630.11,638.25,638.25,4977000 +2008-01-10,645.01,657.2,640.11,646.73,646.73,6334200 +2008-01-09,630.04,653.34,622.51,653.2,653.2,6739700 +2008-01-08,653,659.96,631,631.68,631.68,5339100 +2008-01-07,653.94,662.28,637.35,649.25,649.25,6403400 +2008-01-04,679.69,680.96,655,657,657,5359800 +2008-01-03,685.26,686.85,676.52,685.33,685.33,3252500 +2008-01-02,692.87,697.37,677.73,685.19,685.19,4306900 +2007-12-31,698.57,702.49,690.58,691.48,691.48,2376200 +2007-12-28,704.93,707.95,696.54,702.53,702.53,2537000 +2007-12-27,707.07,716,700.74,700.74,700.74,2942500 +2007-12-26,698.99,713.22,698.21,710.84,710.84,2530000 +2007-12-24,694.99,700.73,693.06,700.73,700.73,1628400 +2007-12-21,697.88,699.26,693.24,696.69,696.69,5382000 +2007-12-20,685.83,691,680.61,689.69,689.69,4422200 +2007-12-19,674.21,679.5,669,677.37,677.37,4421100 +2007-12-18,674.16,676.71,652.5,673.35,673.35,7166700 +2007-12-17,688,695.42,663.67,669.23,669.23,5486000 +2007-12-14,687.51,699.7,687.26,689.96,689.96,3673500 +2007-12-13,696.31,697.62,681.21,694.05,694.05,5040800 +2007-12-12,714,714.32,688.5,699.35,699.35,6159100 +2007-12-11,719.94,720.99,698.78,699.2,699.2,6139100 +2007-12-10,715.99,724.8,714,718.42,718.42,3856200 +2007-12-07,714.99,718,710.5,714.87,714.87,3852100 +2007-12-06,697.8,716.56,697.01,715.26,715.26,4909000 +2007-12-05,692.73,698.93,687.5,698.51,698.51,4209600 +2007-12-04,678.31,692,677.12,684.16,684.16,4231800 +2007-12-03,691.01,695,681.14,681.53,681.53,4325100 +2007-11-30,711,711.06,682.11,693,693,7895500 +2007-11-29,690.75,702.79,687.77,697,697,6208000 +2007-11-28,682.11,694.3,672.14,692.26,692.26,7916500 +2007-11-27,674.8,676.43,650.26,673.57,673.57,8904500 +2007-11-26,680.2,693.4,665,666,666,6790100 +2007-11-23,670,678.28,668.11,676.7,676.7,2738700 +2007-11-21,643.77,669.97,642.08,660.52,660.52,7013500 +2007-11-20,636.48,659.1,632.87,648.54,648.54,9816900 +2007-11-19,629.59,636.77,618.5,625.85,625.85,5527400 +2007-11-16,633.94,635.49,616.02,633.63,633.63,9042800 +2007-11-15,638.57,647.5,624,629.65,629.65,6967700 +2007-11-14,673.28,675.49,636.27,641.68,641.68,8094700 +2007-11-13,644.99,660.92,632.07,660.55,660.55,8426100 +2007-11-12,657.74,669.93,626.21,632.07,632.07,10227300 +2007-11-09,675.78,681.88,661.21,663.97,663.97,11388100 +2007-11-08,734.6,734.89,677.18,693.84,693.84,16512200 +2007-11-07,741.13,747.24,723.14,732.94,732.94,8252900 +2007-11-06,737.56,741.79,725,741.79,741.79,8436300 +2007-11-05,706.99,730.23,706.07,725.65,725.65,8883700 +2007-11-02,710.51,713.58,697.34,711.25,711.25,5841500 +2007-11-01,702.79,713.72,701.78,703.21,703.21,6527200 +2007-10-31,700.69,707,696.04,707,707,6876800 +2007-10-30,677.51,699.91,677.51,694.77,694.77,6887700 +2007-10-29,677.77,680,672.09,679.23,679.23,3066300 +2007-10-26,674.03,676.54,668.06,674.6,674.6,3353900 +2007-10-25,678.68,678.97,663.55,668.51,668.51,5795500 +2007-10-24,672.71,677.47,659.56,675.82,675.82,7404200 +2007-10-23,661.25,677.6,660,675.77,675.77,6793700 +2007-10-22,638.67,655,636.28,650.75,650.75,6598200 +2007-10-19,654.56,658.49,643.23,644.71,644.71,15768400 +2007-10-18,635.41,641.37,628.5,639.62,639.62,12289200 +2007-10-17,630.45,634,621.59,633.48,633.48,6007000 +2007-10-16,618.49,625.92,611.99,616,616,6014100 +2007-10-15,638.47,639.86,615.55,620.11,620.11,6943800 +2007-10-12,623.98,638.4,618.24,637.39,637.39,6823700 +2007-10-11,633.64,641.41,609,622,622,11799000 +2007-10-10,621.36,625.68,616.8,625.39,625.39,5343600 +2007-10-09,615.11,623.78,608.39,615.18,615.18,8767800 +2007-10-08,595,610.26,593.95,609.62,609.62,5028000 +2007-10-05,587.11,596,587.01,594.05,594.05,5068700 +2007-10-04,585.09,585.09,577.06,579.03,579.03,2986700 +2007-10-03,586.25,588.99,580.36,584.02,584.02,3879500 +2007-10-02,583.38,596.81,580.01,584.39,584.39,7056600 +2007-10-01,569.97,584.35,569.61,582.55,582.55,4711300 +2007-09-28,567,569.55,564.12,567.27,567.27,2497800 +2007-09-27,571.73,571.74,565.78,567.5,567.5,2034300 +2007-09-26,570.4,571.79,563.81,568.16,568.16,3346100 +2007-09-25,564,569.56,562.86,569,569,2730600 +2007-09-24,561,571.46,560,568.02,568.02,5297000 +2007-09-21,556.34,560.79,552.83,560.1,560.1,8011700 +2007-09-20,547,556.8,546.03,552.83,552.83,5525000 +2007-09-19,539.27,549.45,538.86,546.85,546.85,5526900 +2007-09-18,526.52,537.25,524.27,535.27,535.27,4215700 +2007-09-17,526.53,529.28,524.07,525.3,525.3,2197500 +2007-09-14,523.2,530.27,522.22,528.75,528.75,2764900 +2007-09-13,524.06,527.21,523.22,524.78,524.78,1891100 +2007-09-12,520.53,527.98,519,522.65,522.65,2986000 +2007-09-11,516.99,521.65,515.73,521.33,521.33,2703600 +2007-09-10,521.28,522.07,510.88,514.48,514.48,3225800 +2007-09-07,517.86,521.24,516.8,519.35,519.35,3663600 +2007-09-06,529.36,529.83,518.24,523.52,523.52,3625900 +2007-09-05,523.4,529.48,522.25,527.8,527.8,3312900 +2007-09-04,515.02,528,514.62,525.15,525.15,3693700 +2007-08-31,513.1,516.5,511.47,515.25,515.25,2977600 +2007-08-30,512.36,515.4,510.58,511.4,511.4,2651700 +2007-08-29,507.84,513.3,507.23,512.88,512.88,2549300 +2007-08-28,511.53,514.98,505.79,506.4,506.4,3273900 +2007-08-27,514.43,517.45,511.4,513.26,513.26,2325100 +2007-08-24,512.61,515.55,508.5,515,515,2472700 +2007-08-23,516,516.13,507,512.19,512.19,3076700 +2007-08-22,509.96,516.25,509.25,512.75,512.75,3252700 +2007-08-21,498.94,508.16,497.77,506.61,506.61,3610600 +2007-08-20,502.46,502.56,496,497.92,497.92,2697300 +2007-08-17,497.44,501,491.65,500.04,500.04,5479400 +2007-08-16,492.02,496.43,480.46,491.52,491.52,8645600 +2007-08-15,509,511.69,496.71,497.55,497.55,5409500 +2007-08-14,515.72,517.4,508,508.6,508.6,3633700 +2007-08-13,519.54,519.75,513.03,515.5,515.5,3179300 +2007-08-10,510.18,518.72,505.63,515.75,515.75,5875200 +2007-08-09,520.8,526.82,514.63,514.73,514.73,4846500 +2007-08-08,519.34,525.78,517.09,525.78,525.78,4068800 +2007-08-07,509.75,519.88,509.04,516.02,516.02,4264300 +2007-08-06,503,510.15,502.5,510,510,3651500 +2007-08-03,510.05,513.2,503,503,503,3176200 +2007-08-02,513.72,514.99,509,511.01,511.01,3154900 +2007-08-01,510.5,516.51,508.14,512.94,512.94,4421500 +2007-07-31,520.23,520.44,510,510,510,4270500 +2007-07-30,512.92,519.34,510.5,516.11,516.11,3963300 +2007-07-27,508.53,516.62,505.5,511.89,511.89,5509100 +2007-07-26,508.74,512.59,498.88,508,508,6883400 +2007-07-25,516.98,517.02,505.56,509.76,509.76,5545000 +2007-07-24,509.3,518.69,507.11,514,514,5572100 +2007-07-23,519.01,520,512.15,512.51,512.51,6356700 +2007-07-20,511.9,523.18,509.5,520.12,520.12,17772300 +2007-07-19,553.46,553.52,542.24,548.59,548.59,11127200 +2007-07-18,553.89,554.5,543.81,549.5,549.5,6080000 +2007-07-17,555.04,557.73,552.38,555,555,4328600 +2007-07-16,550.3,558.58,549.31,552.99,552.99,6599500 +2007-07-13,547.91,552.67,547.25,552.16,552.16,5237100 +2007-07-12,545.86,547.32,540.22,545.33,545.33,3441600 +2007-07-11,543.61,546.5,540.01,544.47,544.47,3309300 +2007-07-10,543.79,547,541.65,543.34,543.34,3856000 +2007-07-09,543,548.74,540.26,542.56,542.56,3729800 +2007-07-06,541.25,543.87,538.73,539.4,539.4,2747000 +2007-07-05,535.56,544.4,532.15,541.63,541.63,4942900 +2007-07-03,531.06,534.4,527.5,534.34,534.34,1871800 +2007-07-02,525.49,531.85,524.2,530.38,530.38,3487600 +2007-06-29,526.02,527.4,519.46,522.7,522.7,3880600 +2007-06-28,524.88,529.5,523.8,525.01,525.01,4168400 +2007-06-27,525,527.99,519.56,526.29,526.29,6123100 +2007-06-26,532.73,533.2,526.24,530.26,530.26,5689500 +2007-06-25,528.98,534.99,523.38,527.42,527.42,7925000 +2007-06-22,516.42,524.99,516.1,524.98,524.98,7203700 +2007-06-21,510.98,515.29,506.28,514.11,514.11,4409700 +2007-06-20,516.96,518.75,509.06,509.97,509.97,4338200 +2007-06-19,514.01,517.25,511.54,514.31,514.31,4355300 +2007-06-18,506.18,516,504.24,515.2,515.2,4835900 +2007-06-15,508.19,509,501.23,505.89,505.89,6174100 +2007-06-14,505.38,505.88,501.7,502.84,502.84,4621200 +2007-06-13,507.09,508.54,498.69,505.24,505.24,7034000 +2007-06-12,508.71,511.67,503.17,504.77,504.77,6419500 +2007-06-11,514.02,518.25,510,511.34,511.34,4647700 +2007-06-08,516.2,519.64,509.46,515.49,515.49,6358200 +2007-06-07,519.75,526.5,512.51,515.06,515.06,10630500 +2007-06-06,516.75,520.78,515.26,518.25,518.25,7886700 +2007-06-05,509.75,519,506.61,518.84,518.84,10447100 +2007-06-04,497.91,510.51,497.59,507.07,507.07,7101000 +2007-06-01,501,505.02,497.93,500.4,500.4,4799000 +2007-05-31,500.56,508.78,497.06,497.91,497.91,8924300 +2007-05-30,484.5,498.84,483,498.6,498.6,7245800 +2007-05-29,485,491.8,484,487.11,487.11,5218000 +2007-05-25,479.7,484.95,477.27,483.52,483.52,5348500 +2007-05-24,475.15,479.2,471.5,474.33,474.33,4173600 +2007-05-23,480.82,483.41,473.75,473.97,473.97,5060200 +2007-05-22,473,479.01,473,475.86,475.86,3839000 +2007-05-21,469.53,479.2,466.72,470.6,470.6,6159300 +2007-05-18,472.03,472.7,469.75,470.32,470.32,3695900 +2007-05-17,472.46,475.22,470.81,470.96,470.96,4660600 +2007-05-16,462,473.14,459.02,472.61,472.61,6554200 +2007-05-15,461.96,462.54,457.41,458,458,4119000 +2007-05-14,465.48,467.51,460,461.78,461.78,3872700 +2007-05-11,461.83,467,461,466.74,466.74,2944100 +2007-05-10,467.04,469.49,461.02,461.47,461.47,3686300 +2007-05-09,466.15,471.73,463.88,469.25,469.25,3889900 +2007-05-08,466.13,468.17,464.73,466.81,466.81,2905100 +2007-05-07,472.14,472.82,466.47,467.27,467.27,3020100 +2007-05-04,470.12,474.84,465.88,471.12,471.12,3950000 +2007-05-03,466.22,474.07,465.29,473.23,473.23,3594200 +2007-05-02,468.65,471.08,465.73,465.78,465.78,3062700 +2007-05-01,472.19,472.81,464.17,469,469,3658200 +2007-04-30,479.15,481.35,471.38,471.38,471.38,3641200 +2007-04-27,480.07,482.4,478.33,479.01,479.01,2925700 +2007-04-26,478.1,484.45,477.11,481.18,481.18,4124900 +2007-04-25,480,481.37,476.11,477.99,477.99,3966800 +2007-04-24,478.61,479.98,475.55,477.53,477.53,3694700 +2007-04-23,480.1,485,478.26,479.08,479.08,5674600 +2007-04-20,490.52,492.5,482.02,482.48,482.48,12161500 +2007-04-19,474.5,481.95,469.59,471.65,471.65,11009600 +2007-04-18,471.26,479.9,469.53,476.01,476.01,5670500 +2007-04-17,473.8,476.39,471.6,472.8,472.8,3210100 +2007-04-16,468.46,476.99,468.15,474.27,474.27,5077900 +2007-04-13,468.45,468.77,463.36,466.29,466.29,2794800 +2007-04-12,464,468,462.24,467.39,467.39,2707900 +2007-04-11,466.06,469.4,462.61,464.53,464.53,3812000 +2007-04-10,467.09,470.79,465.16,466.5,466.5,2979300 +2007-04-09,472.98,473,465.59,468.21,468.21,3062100 +2007-04-05,471.3,472.09,469.62,471.51,471.51,2715800 +2007-04-04,472.14,473,469.58,471.02,471.02,3778800 +2007-04-03,464.05,474.25,464,472.6,472.6,6501800 +2007-04-02,457.76,458.53,452.12,458.53,458.53,3448500 +2007-03-30,462.1,463.4,456.14,458.16,458.16,3380200 +2007-03-29,464.55,466,455,460.92,460.92,3988500 +2007-03-28,461.87,465.44,460.15,461.88,461.88,4591600 +2007-03-27,463.55,465.23,460.34,463.62,463.62,3741200 +2007-03-26,460.55,465,455.62,465,465,4710300 +2007-03-23,461.45,463.39,457.08,461.83,461.83,4111300 +2007-03-22,455.61,462.17,452.53,462.04,462.04,5680700 +2007-03-21,445.3,456.57,445.21,456.55,456.55,5798300 +2007-03-20,445.79,447.6,443.6,445.28,445.28,3421500 +2007-03-19,443.25,448.5,440.63,447.23,447.23,5197700 +2007-03-16,445.65,446.7,439.89,440.85,440.85,5659100 +2007-03-15,447.86,449.82,443.94,446.19,446.19,3944200 +2007-03-14,443.23,448.66,439,448,448,8016900 +2007-03-13,450.11,451.93,442.83,443.03,443.03,6377300 +2007-03-12,452.57,455.25,451.11,454.75,454.75,3465400 +2007-03-09,458,458.4,450.1,452.96,452.96,4977700 +2007-03-08,459.22,465.5,454.1,454.72,454.72,5362800 +2007-03-07,462.69,463.14,454.29,455.64,455.64,6534100 +2007-03-06,447.47,459,447.38,457.55,457.55,7533700 +2007-03-05,437.02,445.5,437,440.95,440.95,6355100 +2007-03-02,445.11,448.7,438.68,438.68,438.68,6583600 +2007-03-01,442.67,452.42,440,448.23,448.23,8685200 +2007-02-28,450.41,453.67,443.04,449.45,449.45,8032300 +2007-02-27,455,459.8,447.17,448.77,448.77,9312800 +2007-02-26,472.83,475.25,463.75,464.93,464.93,3969900 +2007-02-23,475.75,476.95,467.8,470.62,470.62,3882600 +2007-02-22,478.69,484.24,474.39,475.85,475.85,5743900 +2007-02-21,469.84,478.68,467.74,475.86,475.86,5640600 +2007-02-20,468.47,472.75,464.71,472.1,472.1,4067600 +2007-02-16,462.8,470.15,462.06,469.94,469.94,6177000 +2007-02-15,466,466.13,460.72,461.47,461.47,4042400 +2007-02-14,460,469.13,459.22,465.93,465.93,5698800 +2007-02-13,459.15,462.78,457.26,459.1,459.1,4062600 +2007-02-12,460.68,462.39,455.02,458.29,458.29,5754500 +2007-02-09,471.65,472.68,461.5,461.89,461.89,4858600 +2007-02-08,468.05,473.75,465.15,471.03,471.03,4076700 +2007-02-07,473.82,474.35,468.78,470.01,470.01,4119800 +2007-02-06,468.1,473.3,467.26,471.48,471.48,5321900 +2007-02-05,477.5,478,466.19,467.16,467.16,7206900 +2007-02-02,482.61,485,477.81,481.5,481.5,6286500 +2007-02-01,506,506.01,481.53,481.75,481.75,15658700 +2007-01-31,496.49,505,495.51,501.5,501.5,12206100 +2007-01-30,494,498,491.22,494.32,494.32,4180500 +2007-01-29,498,498.75,490.5,492.47,492.47,4775700 +2007-01-26,490.93,497.9,487.03,495.84,495.84,5496500 +2007-01-25,501,504.5,485.66,488.09,488.09,6368500 +2007-01-24,484.45,499.54,483.29,499.07,499.07,6059300 +2007-01-23,480.79,484.75,477.29,479.05,479.05,4665500 +2007-01-22,492.5,492.65,478.5,480.84,480.84,5404300 +2007-01-19,487.98,490.76,486.74,489.75,489.75,4978300 +2007-01-18,494.52,496.48,487.43,487.83,487.83,5932000 +2007-01-17,503.39,507.77,494.38,497.28,497.28,6699100 +2007-01-16,507.55,513,503.3,504.28,504.28,7568900 +2007-01-12,501.99,505,500,505,505,4473700 +2007-01-11,497.2,501.75,496.18,499.72,499.72,7208200 +2007-01-10,484.43,493.55,482.04,489.46,489.46,5968500 +2007-01-09,485.45,488.25,481.2,485.5,485.5,5381400 +2007-01-08,487.69,489.87,482.2,483.58,483.58,4754400 +2007-01-05,482.5,487.5,478.11,487.19,487.19,6872100 +2007-01-04,469,483.95,468.35,483.26,483.26,7887600 +2007-01-03,466,476.66,461.11,467.59,467.59,7706500 +2006-12-29,462.1,464.47,459.86,460.48,460.48,2559200 +2006-12-28,467.12,468.58,462.25,462.56,462.56,3116200 +2006-12-27,460,468.08,459.1,468.03,468.03,4231500 +2006-12-26,456.52,459.47,454.59,457.53,457.53,2074300 +2006-12-22,457.5,458.64,452.73,455.58,455.58,3988300 +2006-12-21,464.18,465.25,452.34,456.2,456.2,6953300 +2006-12-20,470,471.5,462.33,462.9,462.9,4367800 +2006-12-19,461.72,469.31,458.5,468.63,468.63,6587000 +2006-12-18,482.51,482.74,460.72,462.8,462.8,8016600 +2006-12-15,482.64,484.11,479.84,480.3,480.3,5190800 +2006-12-14,480.25,483.75,477.26,482.12,482.12,4748900 +2006-12-13,484.69,485.5,477.02,478.99,478.99,4662100 +2006-12-12,483.85,486.36,480.28,481.78,481.78,4181000 +2006-12-11,484.92,488.9,483.8,483.93,483.93,3263400 +2006-12-08,481.94,488.6,480,484.11,484.11,3974900 +2006-12-07,490.23,491.8,482.42,482.64,482.64,4664300 +2006-12-06,486.96,492.4,484.52,488.71,488.71,4450300 +2006-12-05,487.4,489.44,484.89,487,487,4103000 +2006-12-04,483,487.43,479.35,484.85,484.85,4899900 +2006-12-01,485.98,488.39,478.5,480.8,480.8,5631400 +2006-11-30,484.19,490.4,481.55,484.81,484.81,5577500 +2006-11-29,494.24,494.74,482.25,484.65,484.65,6315300 +2006-11-28,481.13,489.86,477.03,489.5,489.5,7797600 +2006-11-27,501.37,501.78,484.75,484.75,484.75,7324700 +2006-11-24,504.5,507.5,504,505,505,1732700 +2006-11-22,510.97,513,505.78,508.01,508.01,4500700 +2006-11-21,496.54,510,495.83,509.65,509.65,8427500 +2006-11-20,498.4,498.4,492.65,495.05,495.05,5124500 +2006-11-17,493.25,499.66,493,498.79,498.79,5511000 +2006-11-16,495,497.68,492.56,495.9,495.9,5092600 +2006-11-15,493.43,499.85,491.93,491.93,491.93,8370700 +2006-11-14,480.7,489.95,480.5,489.3,489.3,7223400 +2006-11-13,474.9,481.17,474.14,481.03,481.03,4341900 +2006-11-10,473.78,474.72,470.29,473.55,473.55,2796700 +2006-11-09,476.5,479.49,471.86,472.63,472.63,4879200 +2006-11-08,470.35,481.74,468.6,475,475,7965000 +2006-11-07,476.95,479.02,471.77,472.57,472.57,4897100 +2006-11-06,473.77,479.66,472.33,476.95,476.95,4991500 +2006-11-03,472.23,473.75,465.06,471.8,471.8,4907700 +2006-11-02,467.5,473.73,466.38,469.91,469.91,5236700 +2006-11-01,478.76,479.13,465.26,467.5,467.5,5426300 +2006-10-31,478.06,482.16,473.84,476.39,476.39,6285400 +2006-10-30,474.82,480.46,470.01,476.57,476.57,6563100 +2006-10-27,483.9,485.24,472.49,475.2,475.2,6604000 +2006-10-26,487.68,491.96,484.2,485.1,485.1,7031700 +2006-10-25,477.49,488.5,475.11,486.6,486.6,9187500 +2006-10-24,476.28,477.86,471.41,473.31,473.31,8660200 +2006-10-23,462.28,484.64,460.37,480.78,480.78,15104500 +2006-10-20,458.99,460.1,453.59,459.67,459.67,11647900 +2006-10-19,420.23,429.5,419.57,426.06,426.06,11503500 +2006-10-18,422.99,424.75,417.5,419.31,419.31,6017300 +2006-10-17,420.3,423.75,416.7,420.64,420.64,5211000 +2006-10-16,427.7,429.2,421.34,421.75,421.75,4319400 +2006-10-13,427.76,429.5,425.56,427.3,427.3,3622500 +2006-10-12,428.56,429.68,424,427.44,427.44,4844000 +2006-10-11,425.02,429.91,423.76,426.5,426.5,5635400 +2006-10-10,431.56,437.85,422.39,426.65,426.65,9788600 +2006-10-09,424.8,431.95,423.42,429,429,7583300 +2006-10-06,410.22,421.91,409.75,420.5,420.5,7336500 +2006-10-05,414.7,418.24,410.86,411.81,411.81,5789800 +2006-10-04,404.97,415.77,403.05,415.7,415.7,6661800 +2006-10-03,401.29,406.46,398.19,404.04,404.04,5464700 +2006-10-02,401.9,406,400.8,401.44,401.44,3651900 +2006-09-29,405.13,405.62,401.41,401.9,401.9,3310900 +2006-09-28,404.08,406.98,400.54,403.58,403.58,5107400 +2006-09-27,406.3,411.22,402.37,402.92,402.92,5876700 +2006-09-26,405.5,407.68,401.77,406.87,406.87,5289400 +2006-09-25,405.58,409.45,402.5,403.98,403.98,5737300 +2006-09-22,404.98,407.45,401.36,403.78,403.78,4649600 +2006-09-21,400.3,408.45,399.86,406.85,406.85,10692100 +2006-09-20,407.1,407.39,394.62,397,397,9147800 +2006-09-19,415.46,415.49,392.74,403.81,403.81,14292900 +2006-09-18,410,418.69,409.47,414.69,414.69,7106700 +2006-09-15,407.48,410.05,406.74,409.88,409.88,7838200 +2006-09-14,404.3,406.28,401.93,403.98,403.98,5366100 +2006-09-13,395.15,406.76,395.1,406.57,406.57,9768200 +2006-09-12,385,392.73,384.88,391.9,391.9,5442200 +2006-09-11,378.26,384.69,377.77,384.09,384.09,4529200 +2006-09-08,376.72,380.79,376.72,377.85,377.85,3083400 +2006-09-07,379.39,381.75,377.4,378.49,378.49,3842000 +2006-09-06,382.1,383.19,379.66,380.14,380.14,3724100 +2006-09-05,379.87,385.4,377.44,384.36,384.36,4074300 +2006-09-01,380.99,381.28,377.19,378.6,378.6,2672900 +2006-08-31,381.49,382.15,378.2,378.53,378.53,2959900 +2006-08-30,379.21,384.65,378.51,380.75,380.75,4044400 +2006-08-29,380.78,382.32,377.2,378.95,378.95,4460000 +2006-08-28,375.61,380.95,375,380.95,380.95,4164000 +2006-08-25,373.08,375.32,372.5,373.26,373.26,2466700 +2006-08-24,374.44,376.4,372.26,373.73,373.73,3482500 +2006-08-23,377.64,378.27,372.66,373.43,373.43,3642300 +2006-08-22,377.73,379.26,374.84,378.29,378.29,4164100 +2006-08-21,378.1,379,375.22,377.3,377.3,4023300 +2006-08-18,386.31,387.09,380.75,383.36,383.36,4952200 +2006-08-17,386.39,390,383.92,385.8,385.8,5080200 +2006-08-16,383.48,388.45,382.12,387.72,387.72,5853200 +2006-08-15,374.11,381.67,372.6,380.97,380.97,6698200 +2006-08-14,371.5,375.13,368.67,369.43,369.43,4968300 +2006-08-11,374.4,375.28,368,368.5,368.5,3766500 +2006-08-10,373.88,377.67,372.46,374.2,374.2,4261900 +2006-08-09,382.8,384.68,376.36,376.94,376.94,4311000 +2006-08-08,382.82,384.5,379.09,381,381,5743200 +2006-08-07,371.5,379.73,371.15,377.95,377.95,3946900 +2006-08-04,379.56,380.68,371.75,373.85,373.85,5095200 +2006-08-03,364.98,377.91,363.36,375.39,375.39,6327000 +2006-08-02,375.6,377.17,365.2,367.23,367.23,7097800 +2006-08-01,385.11,385.77,375.51,375.51,375.51,5463200 +2006-07-31,388,389.17,383.31,386.6,386.6,4595300 +2006-07-28,382,389.56,381.73,388.12,388.12,4083600 +2006-07-27,387.37,387.49,377.95,382.4,382.4,5641100 +2006-07-26,388.2,391.91,383,385.5,385.5,5531900 +2006-07-25,385.02,391.31,383.8,389.36,389.36,5761100 +2006-07-24,392.82,393.89,381.21,390.9,390.9,8086100 +2006-07-21,386.14,391.75,377.69,390.11,390.11,11754600 +2006-07-20,404.28,404.44,385.66,387.12,387.12,12538700 +2006-07-19,395.01,401.14,394.66,399,399,8518500 +2006-07-18,409.75,410.57,397.74,403.05,403.05,8536800 +2006-07-17,404.63,411,403.72,407.89,407.89,5811900 +2006-07-14,410.33,411.49,398.61,403.5,403.5,7552100 +2006-07-13,414,418.34,406.83,408.83,408.83,6924500 +2006-07-12,422.09,422.74,416.73,417.25,417.25,4906700 +2006-07-11,418.51,425.05,413.03,424.56,424.56,5971300 +2006-07-10,423.44,425.23,416.38,418.2,418.2,4436400 +2006-07-07,426.05,427.89,415.88,420.45,420.45,6041900 +2006-07-06,423.38,425.38,421.98,423.19,423.19,3687100 +2006-07-05,421.52,422.8,415.64,421.46,421.46,4985600 +2006-07-03,420.04,423.77,419.45,423.2,423.2,2156700 +2006-06-30,415.6,419.33,412.33,419.33,419.33,6258000 +2006-06-29,407.99,418.2,405.82,417.81,417.81,6658200 +2006-06-28,404.01,406.48,401.13,406.11,406.11,3710500 +2006-06-27,405.71,408,401.01,402.32,402.32,4107100 +2006-06-26,406.75,408.3,403.25,404.22,404.22,3551200 +2006-06-23,402.76,409.75,400.74,404.86,404.86,5314800 +2006-06-22,401.58,406,388,399.95,399.95,5911900 +2006-06-21,391.06,404,389.75,402.13,402.13,8744400 +2006-06-20,388.03,391.87,386.51,387.17,387.17,4039900 +2006-06-19,390.85,394.8,386.98,388.14,388.14,7633100 +2006-06-16,389.1,390.93,388,390.7,390.7,5304600 +2006-06-15,386.62,392.25,383,391,391,6785700 +2006-06-14,389.83,391.1,378.52,384.39,384.39,7772000 +2006-06-13,380.9,387,378.12,386.52,386.52,7659100 +2006-06-12,388.34,390.49,381,381.54,381.54,5019100 +2006-06-09,392.19,395.43,385.35,386.57,386.57,6157500 +2006-06-08,387.75,394.27,378.59,393.3,393.3,10359500 +2006-06-07,393.24,394.86,386.5,386.51,386.51,8911300 +2006-06-06,376.58,390,376.3,389.99,389.99,10259800 +2006-06-05,376.18,381.45,374.15,374.44,374.44,5558500 +2006-06-02,386.84,387.08,377.45,379.44,379.44,6386400 +2006-06-01,373.54,382.99,371.6,382.62,382.62,6278000 +2006-05-31,373.8,378.25,366.78,371.82,371.82,7981300 +2006-05-30,378.28,381,371.45,371.94,371.94,4316000 +2006-05-26,384.55,385.88,380.03,381.35,381.35,3667000 +2006-05-25,379.08,383,372.31,382.99,382.99,8194600 +2006-05-24,377.35,383.44,371.61,381.25,381.25,9553800 +2006-05-23,374.21,383.88,373.56,375.58,375.58,8983000 +2006-05-22,367.85,373.03,365.25,370.95,370.95,8604400 +2006-05-19,373.28,374.5,360.57,370.02,370.02,11398200 +2006-05-18,378.78,381.81,370.71,370.99,370.99,5835000 +2006-05-17,370.61,379.84,370.22,374.5,374.5,10643800 +2006-05-16,375.99,376.86,369.89,371.3,371.3,6491100 +2006-05-15,375.93,380.15,368.25,376.2,376.2,8590100 +2006-05-12,383.54,384.87,373.55,374.13,374.13,10087600 +2006-05-11,403.42,404.71,384.98,387,387,8892800 +2006-05-10,408.31,411.71,401.86,402.98,402.98,6187200 +2006-05-09,395.7,409,393.75,408.8,408.8,9140600 +2006-05-08,395.11,397.12,390.05,394.78,394.78,5118600 +2006-05-05,397.6,400.68,391.78,394.3,394.3,6065000 +2006-05-04,395.03,398.87,392.21,394.75,394.75,4652000 +2006-05-03,396.35,401.5,390.88,394.17,394.17,8072200 +2006-05-02,401.08,402.49,388.4,394.8,394.8,13104300 +2006-05-01,418.47,419.44,398.55,398.9,398.9,10361200 +2006-04-28,418.63,425.73,416.3,417.94,417.94,7421300 +2006-04-27,422.91,426.91,419.39,420.03,420.03,8337900 +2006-04-26,427.74,430.04,423.53,425.97,425.97,7277800 +2006-04-25,439.63,441.04,426,427.16,427.16,9569000 +2006-04-24,439.4,444.7,436.52,440.5,440.5,8836400 +2006-04-21,448.9,450.72,436.17,437.1,437.1,22551300 +2006-04-20,411.01,416,408.2,415,415,12271500 +2006-04-19,412.57,413.64,406.73,410.5,410.5,6781700 +2006-04-18,407.93,409.83,401.5,404.24,404.24,8137600 +2006-04-17,403.45,412.5,400.84,406.82,406.82,8259500 +2006-04-13,408.63,409.76,400.5,402.16,402.16,6552900 +2006-04-12,409,411.33,405.19,408.95,408.95,6017000 +2006-04-11,416.42,419.1,406.22,409.66,409.66,11107200 +2006-04-10,407.08,417.17,405.25,416.38,416.38,9320100 +2006-04-07,412.41,412.85,404.02,406.16,406.16,7025900 +2006-04-06,406.49,413.89,405.43,411.18,411.18,8598500 +2006-04-05,408.2,414.57,402.82,407.99,407.99,13410500 +2006-04-04,389.9,404.9,388.14,404.34,404.34,15715700 +2006-04-03,389.53,392.47,387.93,389.7,389.7,8122700 +2006-03-31,388.74,391.87,384.03,390,390,36521400 +2006-03-30,389.19,393.5,383.61,388.44,388.44,14711700 +2006-03-29,379.94,399,379.51,394.98,394.98,19027500 +2006-03-28,371.71,377.86,371.17,377.2,377.2,8945800 +2006-03-27,367.09,371.71,365,369.69,369.69,7023700 +2006-03-24,368.62,370.09,362.51,365.8,365.8,15180600 +2006-03-23,342.35,345.75,340.2,341.89,341.89,7434700 +2006-03-22,339.75,344.1,337.5,340.22,340.22,7596000 +2006-03-21,350.01,351.66,339.08,339.92,339.92,9831100 +2006-03-20,342.34,350.09,341.54,348.19,348.19,10407600 +2006-03-17,338.8,341.78,334.93,339.79,339.79,8551700 +2006-03-16,348.61,348.75,337.9,338.77,338.77,10016700 +2006-03-15,350.77,352.3,340.53,344.5,344.5,12768800 +2006-03-14,337.14,352.37,332.62,351.16,351.16,18450700 +2006-03-13,340.93,346.1,335.45,337.06,337.06,13642400 +2006-03-10,343.5,344.5,331.55,337.5,337.5,19325600 +2006-03-09,355.39,358.53,341.5,343,343,13910400 +2006-03-08,353.93,360.03,350.54,353.88,353.88,11745600 +2006-03-07,365.02,368.45,358.15,364.45,364.45,10378800 +2006-03-06,380.91,383.4,367.14,368.1,368.1,8939700 +2006-03-03,384.3,387.24,375.76,378.18,378.18,11962000 +2006-03-02,364.28,381.1,362.2,376.45,376.45,18330300 +2006-03-01,368.56,369.45,361.3,364.8,364.8,12061200 +2006-02-28,393.2,397.54,338.51,362.62,362.62,39437600 +2006-02-27,381.27,391.7,380.28,390.38,390.38,10212200 +2006-02-24,377.3,380.07,373.49,377.4,377.4,6484300 +2006-02-23,365.61,381.24,365.39,378.07,378.07,12551600 +2006-02-22,367.15,368.95,363.86,365.49,365.49,6476200 +2006-02-21,366.44,373.54,365.11,366.59,366.59,8686000 +2006-02-17,369.86,372.14,363.62,368.75,368.75,14320200 +2006-02-16,345.67,367,344.49,366.46,366.46,21315500 +2006-02-15,341.27,346,337.83,342.38,342.38,12947000 +2006-02-14,345.33,351.69,342.4,343.32,343.32,14654000 +2006-02-13,346.64,350.6,341.89,345.7,345.7,19717800 +2006-02-10,361.95,364.5,353.14,362.61,362.61,15223500 +2006-02-09,371.2,374.4,356.11,358.77,358.77,11912400 +2006-02-08,368.48,370.69,354.67,369.08,369.08,20804100 +2006-02-07,382.99,383.7,363.35,367.92,367.92,16630200 +2006-02-06,385.31,389.9,379.56,385.1,385.1,8940400 +2006-02-03,393.62,393.9,372.57,381.55,381.55,18281800 +2006-02-02,403.82,406.5,395.98,396.04,396.04,11807700 +2006-02-01,389.03,402,387.52,401.78,401.78,27122500 +2006-01-31,430.57,439.6,423.97,432.66,432.66,22066000 +2006-01-30,429.23,433.28,425,426.82,426.82,8588900 +2006-01-27,435,438.22,428.98,433.49,433.49,8452200 +2006-01-26,439.54,439.99,423.56,434.27,434.27,12926100 +2006-01-25,451.26,454.23,429.22,433,433,18739800 +2006-01-24,436.03,444.95,434.48,443.03,443.03,15464600 +2006-01-23,407.38,428.39,405.73,427.5,427.5,22741400 +2006-01-20,438.7,440.03,394.74,399.46,399.46,41116700 +2006-01-19,451.17,453.49,433,436.45,436.45,14537300 +2006-01-18,447.3,457.36,443.25,444.91,444.91,20485700 +2006-01-17,463.06,469.9,462.53,467.11,467.11,8270300 +2006-01-13,464.31,466.89,461.61,466.25,466.25,7656600 +2006-01-12,473.72,474.99,461.5,463.63,463.63,10125300 +2006-01-11,471.27,475.11,469.18,471.63,471.63,9007400 +2006-01-10,464.42,470.25,462.04,469.76,469.76,9097100 +2006-01-09,466.41,473.4,460.94,466.9,466.9,12791900 +2006-01-06,456.87,470.5,453.24,465.66,465.66,17756900 +2006-01-05,446,451.55,441.5,451.24,451.24,10808300 +2006-01-04,443.9,448.96,439.75,445.24,445.24,15286400 +2006-01-03,422.52,435.67,418.22,435.23,435.23,13121200 +2005-12-30,417.27,418.21,413.74,414.86,414.86,7587100 +2005-12-29,427.98,428.73,419.17,420.15,420.15,6945800 +2005-12-28,424.34,427.78,421.26,426.69,426.69,7117900 +2005-12-27,431.86,431.86,422.76,424.64,424.64,6702800 +2005-12-23,432.15,432.5,428.78,430.93,430.93,4595100 +2005-12-22,431.77,432.86,425.93,432.04,432.04,7546600 +2005-12-21,433.55,436.86,420.71,426.33,426.33,11221900 +2005-12-20,427.86,432.2,424.67,429.74,429.74,10084700 +2005-12-19,432.2,446.21,420.11,424.6,424.6,21936800 +2005-12-16,425.34,432.5,422.75,430.15,430.15,16330500 +2005-12-15,419.11,423.14,416.5,422.55,422.55,6045800 +2005-12-14,417.04,419.73,415.49,418.96,418.96,6630400 +2005-12-13,412.5,418,411.64,417.49,417.49,8157000 +2005-12-12,414.63,415.21,409.95,412.61,412.61,6950100 +2005-12-09,415,415.78,408.56,409.2,409.2,7643400 +2005-12-08,405.3,410.65,402.64,410.65,410.65,8910100 +2005-12-07,406.16,406.7,399.01,404.22,404.22,11665900 +2005-12-06,408.7,416.41,401.7,404.54,404.54,15114700 +2005-12-05,417,417.5,404.28,405.85,405.85,10289400 +2005-12-02,416.94,419.53,413.86,417.7,417.7,7543500 +2005-12-01,409.2,415.44,408.29,414.09,414.09,9744900 +2005-11-30,404.26,408.45,395.56,404.91,404.91,15596600 +2005-11-29,424.46,426.4,402.14,403.54,403.54,21495800 +2005-11-28,429.82,431.24,422.44,423.48,423.48,11008400 +2005-11-25,425.78,428.75,425.3,428.62,428.62,4840100 +2005-11-23,417.04,424.72,415.78,422.86,422.86,10085000 +2005-11-22,408.65,417.31,406.23,416.47,416.47,9596000 +2005-11-21,399.17,409.98,393.49,409.36,409.36,10335100 +2005-11-18,403.49,404.5,399.85,400.21,400.21,7025700 +2005-11-17,401.8,403.81,399.53,403.45,403.45,9212200 +2005-11-16,396.2,398.85,394.11,398.15,398.15,8695200 +2005-11-15,394.38,397,390.95,392.8,392.8,8624900 +2005-11-14,392.12,398.22,391.53,396.97,396.97,7807900 +2005-11-11,395.12,396.9,388.85,390.4,390.4,7063900 +2005-11-10,378.36,391.35,377.43,391.1,391.1,9128700 +2005-11-09,386.67,388.29,378.03,379.15,379.15,10466900 +2005-11-08,394.25,395.59,388.58,389.9,389.9,7897500 +2005-11-07,395.1,397.47,392.15,395.03,395.03,9591500 +2005-11-04,389.98,391.79,385.45,390.43,390.43,8824900 +2005-11-03,382.41,386.58,381.38,385.95,385.95,7448400 +2005-11-02,381.7,385,377.17,379.68,379.68,10565400 +2005-11-01,371.86,383.9,369.01,379.38,379.38,16356100 +2005-10-31,360.24,374.75,359.51,372.14,372.14,14342900 +2005-10-28,355.27,358.95,355.02,358.17,358.17,5903500 +2005-10-27,356.6,357.09,351.68,353.06,353.06,5134400 +2005-10-26,346.28,356,346.19,355.44,355.44,8907500 +2005-10-25,345.78,347.4,342.86,346.91,346.91,6878300 +2005-10-24,343.37,349.3,342.19,348.65,348.65,9431700 +2005-10-21,345.8,346.43,333,339.9,339.9,22892400 +2005-10-20,309.99,311.13,301.21,303.2,303.2,13911700 +2005-10-19,304,309.87,303.96,308.7,308.7,7010700 +2005-10-18,304.96,307.96,302.74,303.28,303.28,7077800 +2005-10-17,297.5,305.2,294.56,305,305,7566700 +2005-10-14,299.9,300.23,292.54,296.14,296.14,8519100 +2005-10-13,302,302,290.68,297.44,297.44,10567700 +2005-10-12,305.2,307.19,299,300.97,300.97,9306200 +2005-10-11,310.61,312.65,304.86,306.1,306.1,8542600 +2005-10-10,313.31,314.82,309.15,310.65,310.65,5572200 +2005-10-07,314.79,316.67,310.54,312.99,312.99,6770300 +2005-10-06,314.14,314.48,310.09,312.75,312.75,7993800 +2005-10-05,312.69,314.9,308,310.71,310.71,8328400 +2005-10-04,319.95,321.28,310.74,311,311,9144300 +2005-10-03,313.63,320.11,312.79,318.68,318.68,9160300 +2005-09-30,314.22,317.5,312.29,316.46,316.46,9151300 +2005-09-29,306.68,310.72,306.08,309.62,309.62,5613800 +2005-09-28,314.22,315.1,305.6,306,306,7997400 +2005-09-27,314.95,318.41,313.38,313.94,313.94,6873100 +2005-09-26,319.5,320.95,312.56,314.28,314.28,9894400 +2005-09-23,313,317.21,312.59,315.36,315.36,8483800 +2005-09-22,311.5,319.22,310.17,311.37,311.37,13006400 +2005-09-21,308.41,313.76,305.96,311.9,311.9,10119700 +2005-09-20,306.15,311.3,305.23,307.91,307.91,9351000 +2005-09-19,301,306,300.71,303.79,303.79,5761900 +2005-09-16,304.02,304.5,299.87,300.2,300.2,7579800 +2005-09-15,299.52,306.75,297.91,302.62,302.62,15466200 +2005-09-14,308.73,313.28,300.3,303,303,11275800 +2005-09-13,309,315.53,306.17,311.68,311.68,10299900 +2005-09-12,301.75,311.42,301,309.74,309.74,10386500 +2005-09-09,297.28,299.1,296.56,299.09,299.09,4390500 +2005-09-08,294.83,299.28,293.36,295.39,295.39,6613300 +2005-09-07,285.89,295.5,285.28,294.87,294.87,7499500 +2005-09-06,289,289.39,286.8,287.11,287.11,4212300 +2005-09-02,286.51,289.99,286.44,288.45,288.45,3434500 +2005-09-01,285.91,287.5,285,286.25,286.25,2742100 +2005-08-31,288.23,288.5,284.36,286,286,5034000 +2005-08-30,287.39,289.51,285.88,287.27,287.27,4792000 +2005-08-29,282.24,289.12,282.24,288.45,288.45,5903000 +2005-08-26,283.48,285.02,282.66,283.58,283.58,3755300 +2005-08-25,282.55,284,279.97,282.59,282.59,4376600 +2005-08-24,277.57,284.75,276.45,282.57,282.57,8593100 +2005-08-23,276.16,279.74,274.12,279.58,279.58,5821700 +2005-08-22,281.24,281.47,273.35,274.01,274.01,6813000 +2005-08-19,280.99,281.45,279.62,280,280,5542900 +2005-08-18,275.91,280.5,275,279.99,279.99,11872800 +2005-08-17,285.51,286.57,284,285.1,285.1,3883300 +2005-08-16,284.88,287.79,283.34,285.65,285.65,7109200 +2005-08-15,289.8,292.77,283.77,284,284,8174700 +2005-08-12,283.36,290.2,281.64,289.72,289.72,6585900 +2005-08-11,285.89,286.58,280.62,284.05,284.05,7514900 +2005-08-10,291.3,292.33,284.88,285.68,285.68,6879000 +2005-08-09,291.96,292.68,288.51,291.57,291.57,5779300 +2005-08-08,293.6,295.65,290.49,291.25,291.25,4481800 +2005-08-05,297.5,298.51,291.31,292.35,292.35,5939700 +2005-08-04,295.55,299,295.25,297.73,297.73,5236500 +2005-08-03,298,299.72,295.6,297.3,297.3,5930600 +2005-08-02,291.6,299.52,291.12,299.19,299.19,7290200 +2005-08-01,288.12,292.5,288.1,291.61,291.61,5662400 +2005-07-29,292.14,292.84,286.99,287.76,287.76,8363300 +2005-07-28,297.41,297.41,293.28,293.5,293.5,5925600 +2005-07-27,297.74,298.23,292.4,296.93,296.93,7217900 +2005-07-26,295.01,298,292.09,296.09,296.09,9816900 +2005-07-25,302.39,303.29,294.96,295.85,295.85,9658800 +2005-07-22,306.37,309.25,296.33,302.4,302.4,23386800 +2005-07-21,314.05,317.8,311.21,313.94,313.94,19789400 +2005-07-20,305.57,312.61,301.8,312,312,14310400 +2005-07-19,302.1,310.35,301.8,309.9,309.9,12621400 +2005-07-18,300,301.9,297.75,299.54,299.54,6207800 +2005-07-15,301.24,303.4,299.78,301.19,301.19,8438400 +2005-07-14,305.34,306.75,300.07,300.89,300.89,10667700 +2005-07-13,292.51,299.24,292.1,298.86,298.86,11437900 +2005-07-12,293.39,294.4,290.93,291.78,291.78,5864900 +2005-07-11,296.4,296.6,291.02,293.35,293.35,8390300 +2005-07-08,296.25,297.5,294.05,296.23,296.23,7457600 +2005-07-07,289.39,295.8,288.51,295.54,295.54,10672100 +2005-07-06,297.3,297.6,291.38,291.52,291.52,8000300 +2005-07-05,292.1,295.98,290.23,295.71,295.71,7494000 +2005-07-01,295.04,296.24,289.22,291.25,291.25,9227600 +2005-06-30,294.34,298.93,291.04,294.15,294.15,15094400 +2005-06-29,302.5,304.38,292.15,292.72,292.72,18298700 +2005-06-28,306.28,309.25,302,302,302,19036500 +2005-06-27,298.9,304.47,293.86,304.1,304.1,17802900 +2005-06-24,290.9,298,289.58,297.25,297.25,17771200 +2005-06-23,288,294.81,286.5,289.71,289.71,14056400 +2005-06-22,289.67,292.32,288.67,289.3,289.3,10474000 +2005-06-21,288.07,290.3,284.97,287.84,287.84,15132300 +2005-06-20,276.09,287.67,271.73,286.7,286.7,21024700 +2005-06-17,279,280.3,275.9,280.3,280.3,10434400 +2005-06-16,274.26,278.3,273.07,277.44,277.44,12462400 +2005-06-15,275,277.3,267.43,274.8,274.8,20883100 +2005-06-14,278.59,281.24,277.75,278.35,278.35,10091900 +2005-06-13,279.82,284.19,276.52,282.75,282.75,12803200 +2005-06-10,286.99,287.28,280.02,282.5,282.5,12696600 +2005-06-09,284.72,288.5,280.56,286.31,286.31,16441100 +2005-06-08,292.85,293.19,278,279.56,279.56,25700900 +2005-06-07,297.1,299.59,290.3,293.12,293.12,24323000 +2005-06-06,282.39,293.75,281.83,290.94,290.94,22525900 +2005-06-03,286.79,289.3,277.41,280.26,280.26,18782300 +2005-06-02,288.73,289.78,284.6,287.9,287.9,17974100 +2005-06-01,283.2,292.89,282.02,288,288,35191700 +2005-05-31,269.43,278.4,269.37,277.27,277.27,22236800 +2005-05-27,260.46,266.05,259.25,266,266,12184100 +2005-05-26,260.96,263.76,258.3,259.2,259.2,13546600 +2005-05-25,252.73,260.98,250.63,260.81,260.81,18057900 +2005-05-24,256.96,265.44,253.5,256,256,29043100 +2005-05-23,243.16,258.1,242.71,255.45,255.45,21388300 +2005-05-20,241.21,241.67,239.65,241.61,241.61,8163500 +2005-05-19,240.34,241.17,238.27,239.18,239.18,9716500 +2005-05-18,233.61,239.97,233.52,239.16,239.16,12312000 +2005-05-17,230.56,233.45,230.2,233.13,233.13,7808900 +2005-05-16,229.68,231.62,228.57,231.05,231.05,5681400 +2005-05-13,229.18,231.09,227.32,229.24,229.24,7415500 +2005-05-12,230.81,232.23,228.2,228.72,228.72,8948200 +2005-05-11,228.97,231.98,227.93,231.29,231.29,11478800 +2005-05-10,225.47,227.8,224.72,227.8,227.8,6345800 +2005-05-09,228,228.5,225.43,226.02,226.02,5536800 +2005-05-06,228.4,229.25,226.47,228.02,228.02,6763900 +2005-05-05,228.62,228.62,225.88,226.98,226.98,7509600 +2005-05-04,227.23,229.88,227,228.5,228.5,12083500 +2005-05-03,221.85,228.15,221.32,226.19,226.19,17780200 +2005-05-02,222.05,223.7,220.21,222.29,222.29,9767400 +2005-04-29,221.91,222.25,217.82,220,220,9170200 +2005-04-28,219.5,222.08,217.71,219.45,219.45,8682800 +2005-04-27,217.99,220.85,216.74,219.78,219.78,10264800 +2005-04-26,220.22,222,218.29,218.75,218.75,17272000 +2005-04-25,217.82,224.74,217.52,223.53,223.53,19840000 +2005-04-22,222.9,224,214.26,215.81,215.81,33205100 +2005-04-21,200.42,205,199.32,204.22,204.22,17751900 +2005-04-20,198.58,200.5,195.91,198.1,198.1,15451500 +2005-04-19,189.33,192,188.03,191.4,191.4,8430000 +2005-04-18,184.58,187.88,183.49,186.97,186.97,6550300 +2005-04-15,190.1,190.34,184.66,185,185,11577400 +2005-04-14,193.27,194.36,190.1,191.45,191.45,6152700 +2005-04-13,193.47,194.32,189.73,192.93,192.93,6555800 +2005-04-12,193,194.42,189.41,193.96,193.96,7319600 +2005-04-11,193.09,194.8,192.32,193.23,193.23,5410500 +2005-04-08,193.69,195.1,191.45,192.05,192.05,5116600 +2005-04-07,188.78,194.62,188.64,193.76,193.76,9692200 +2005-04-06,189.24,189.65,187.58,189.22,189.22,5252600 +2005-04-05,187.73,190.26,187.57,188.57,188.57,8736700 +2005-04-04,179.95,185.32,179.84,185.29,185.29,8076400 +2005-04-01,181.76,182.95,179.99,180.04,180.04,6182000 +2005-03-31,177.95,181.39,177.64,180.51,180.51,6768600 +2005-03-30,180.64,181.45,179.6,180.45,180.45,6236100 +2005-03-29,181.05,183.28,178.07,179.57,179.57,6473000 +2005-03-28,181.68,184.8,180.95,181.42,181.42,8738000 +2005-03-24,180.7,180.86,179.2,179.25,179.25,3705200 +2005-03-23,177.97,180.24,177.97,178.98,178.98,4845000 +2005-03-22,181.18,181.94,177.85,178.6,178.6,5631700 +2005-03-21,179.27,182.17,177.25,180.88,180.88,7483700 +2005-03-18,178.81,180.4,178.31,180.04,180.04,7090000 +2005-03-17,177.13,179.64,175.8,179.29,179.29,8260600 +2005-03-16,176.7,178.61,175.01,175.6,175.6,7106300 +2005-03-15,175.3,180,174.21,178.61,178.61,10422100 +2005-03-14,178.33,178.4,172.57,174.99,174.99,11146600 +2005-03-11,180.44,180.95,177.15,177.8,177.8,8028300 +2005-03-10,181.01,181.2,177.4,179.98,179.98,10960500 +2005-03-09,184.21,184.65,180.16,181.35,181.35,11360400 +2005-03-08,189.1,189.85,184.97,185.2,185.2,8046100 +2005-03-07,187.78,189.6,187.03,188.81,188.81,8667400 +2005-03-04,186.7,187.25,185.07,185.9,185.9,6774100 +2005-03-03,186.13,187.75,184.31,187.01,187.01,7608600 +2005-03-02,185.95,187.67,184.36,185.18,185.18,7285500 +2005-03-01,189.29,189.75,182,186.06,186.06,9311200 +2005-02-28,186,189.87,185.85,187.99,187.99,7818400 +2005-02-25,189.15,189.92,185.51,185.87,185.87,9973500 +2005-02-24,183.37,189.85,182.23,188.89,188.89,25814300 +2005-02-23,193.3,194.48,188.66,193.95,193.95,15586000 +2005-02-22,196.5,198.9,190.39,191.37,191.37,13483700 +2005-02-18,198.51,198.84,196.66,197.95,197.95,8485900 +2005-02-17,197.83,199.75,196.81,197.9,197.9,10414400 +2005-02-16,194.7,199.33,194.3,198.41,198.41,16532300 +2005-02-15,193.6,199.84,193.08,195.23,195.23,25782800 +2005-02-14,182.85,193.08,181,192.99,192.99,38562200 +2005-02-11,186.66,192.32,186.07,187.4,187.4,13116000 +2005-02-10,191.97,192.21,185.25,187.98,187.98,18982700 +2005-02-09,200.76,201.6,189.46,191.58,191.58,17171500 +2005-02-08,196.96,200.02,194.53,198.64,198.64,11480000 +2005-02-07,205.26,206.4,195.51,196.03,196.03,12960400 +2005-02-04,206.47,207.75,202.6,204.36,204.36,14819300 +2005-02-03,205.99,213.37,205.81,210.86,210.86,12988100 +2005-02-02,215.55,216.8,203.66,205.96,205.96,32799300 +2005-02-01,194.38,196.66,190.63,191.9,191.9,18839000 +2005-01-31,193.69,196.36,191.72,195.62,195.62,9596700 +2005-01-28,190.02,194.7,186.34,190.34,190.34,12208200 +2005-01-27,188.76,188.86,185.2,188.08,188.08,6627400 +2005-01-26,179.27,189.41,179.15,189.24,189.24,12307900 +2005-01-25,181.94,182.24,176.29,177.12,177.12,10659200 +2005-01-24,188.69,189.33,180.32,180.72,180.72,14022700 +2005-01-21,194.54,195.36,188.12,188.28,188.28,9258400 +2005-01-20,192.5,196.25,192,193.92,193.92,9001600 +2005-01-19,204.65,205.3,196.71,197.3,197.3,11257700 +2005-01-18,200.97,205.02,198.66,203.9,203.9,13172600 +2005-01-14,196,200.01,194.13,199.97,199.97,9640300 +2005-01-13,195.38,197.39,194.05,195.33,195.33,6849400 +2005-01-12,194.33,195.93,190.5,195.38,195.38,8177800 +2005-01-11,195.62,197.71,193.18,193.54,193.54,6958700 +2005-01-10,194.5,198.1,191.83,195.06,195.06,7539600 +2005-01-07,190.64,194.25,188.78,193.85,193.85,9662900 +2005-01-06,195.08,195.9,187.72,188.55,188.55,10387100 +2005-01-05,193.45,196.9,192.23,193.51,193.51,8236600 +2005-01-04,201.4,202.93,193.48,194.5,194.5,13755900 +2005-01-03,197.4,203.64,195.46,202.71,202.71,15844200 +2004-12-31,199.23,199.88,192.56,192.79,192.79,7668500 +2004-12-30,192.97,198.23,191.85,197.6,197.6,5904300 +2004-12-29,191.78,193.52,191.78,192.9,192.9,2678100 +2004-12-28,192.11,193.55,191.01,192.76,192.76,4145800 +2004-12-27,189.15,193.3,189.1,191.91,191.91,6104100 +2004-12-23,187.45,188.6,186,187.9,187.9,3614600 +2004-12-22,183.9,186.85,183.01,186.3,186.3,3907000 +2004-12-21,186.31,187.88,183.4,183.75,183.75,5516300 +2004-12-20,182,188.46,181.87,185.02,185.02,9834500 +2004-12-17,176.76,180.5,176.55,180.08,180.08,7386200 +2004-12-16,176.95,180.49,175.95,176.47,176.47,8572800 +2004-12-15,177.99,180.69,176.66,179.78,179.78,11471000 +2004-12-14,171,178.82,169.6,178.69,178.69,11088400 +2004-12-13,172.17,173.18,169.45,170.45,170.45,4818600 +2004-12-10,173.43,174.88,171.29,171.65,171.65,4317200 +2004-12-09,170.25,173.5,168.47,173.43,173.43,7654000 +2004-12-08,170.35,173.68,168.73,169.98,169.98,7541800 +2004-12-07,176,176.2,170.55,171.43,171.43,6870900 +2004-12-06,179.13,180.7,176.02,176.29,176.29,6254000 +2004-12-03,179.95,181.06,177.6,180.4,180.4,5869200 +2004-12-02,179.9,181.51,178.55,179.4,179.4,6260900 +2004-12-01,181.95,182.5,179.55,179.96,179.96,7864100 +2004-11-30,180.71,183,180.25,181.98,181.98,7700000 +2004-11-29,180.36,182.95,177.51,181.05,181.05,10666600 +2004-11-26,175.8,180.03,175.32,179.39,179.39,6480100 +2004-11-24,174.82,177.21,172.51,174.76,174.76,15281000 +2004-11-23,167.97,170.83,166.5,167.52,167.52,12413300 +2004-11-22,164.47,169.5,161.31,165.1,165.1,12368200 +2004-11-19,169.1,169.98,166.52,169.4,169.4,8769300 +2004-11-18,170.29,174.42,165.73,167.54,167.54,16629600 +2004-11-17,169.02,177.5,169,172.5,172.5,18132900 +2004-11-16,177.5,179.47,170.83,172.54,172.54,20917400 +2004-11-15,180.45,188.32,178.75,184.87,184.87,11901500 +2004-11-12,185.23,189.8,177.4,182,182,16746100 +2004-11-11,169.13,183.75,167.57,183.02,183.02,14985500 +2004-11-10,170.67,172.52,166.33,167.86,167.86,10644000 +2004-11-09,174.1,175.2,165.27,168.7,168.7,11064200 +2004-11-08,170.93,175.44,169.4,172.55,172.55,11191800 +2004-11-05,181.98,182.3,168.55,169.35,169.35,19833100 +2004-11-04,188.44,190.4,183.35,184.7,184.7,14409600 +2004-11-03,198.18,201.6,190.75,191.67,191.67,13888700 +2004-11-02,198.78,199.25,193.34,194.87,194.87,11346300 +2004-11-01,193.55,197.67,191.27,196.03,196.03,12224900 +2004-10-29,198.89,199.95,190.6,190.64,190.64,21162500 +2004-10-28,186.68,194.39,185.6,193.3,193.3,14846800 +2004-10-27,182.72,189.52,181.77,185.97,185.97,13356500 +2004-10-26,186.34,192.64,180,181.8,181.8,22307100 +2004-10-25,176.4,194.43,172.55,187.4,187.4,32764200 +2004-10-22,170.54,180.17,164.08,172.43,172.43,36891900 +2004-10-21,144.4,150.13,141.62,149.38,149.38,14589500 +2004-10-20,148.03,148.99,139.6,140.49,140.49,11372700 +2004-10-19,150.5,152.4,147.35,147.94,147.94,9064000 +2004-10-18,143.2,149.2,141.21,149.16,149.16,7025200 +2004-10-15,144.93,145.5,141.95,144.11,144.11,6604000 +2004-10-14,141.01,142.38,138.56,142,142,5226300 +2004-10-13,143.32,143.55,140.08,140.9,140.9,9893000 +2004-10-12,134.44,137.61,133.4,137.4,137.4,5838600 +2004-10-11,137,138.86,133.85,135.26,135.26,5241300 +2004-10-08,138.72,139.68,137.02,137.73,137.73,5540300 +2004-10-07,136.92,139.88,136.55,138.85,138.85,7064600 +2004-10-06,137.55,138.45,136,137.08,137.08,6697400 +2004-10-05,134.66,138.53,132.24,138.37,138.37,7494100 +2004-10-04,135.25,136.87,134.03,135.06,135.06,6517900 +2004-10-01,130.8,134.24,128.9,132.58,132.58,7570000 +2004-09-30,129.9,132.3,129,129.6,129.6,6885900 +2004-09-29,126.7,135.02,126.23,131.08,131.08,15273500 +2004-09-28,121.3,127.4,120.21,126.86,126.86,8473000 +2004-09-27,119.56,120.88,117.8,118.26,118.26,3536600 +2004-09-24,120.94,124.1,119.76,119.83,119.83,4566300 +2004-09-23,118.84,122.63,117.02,120.82,120.82,4272100 +2004-09-22,117.4,119.67,116.81,118.38,118.38,3794400 +2004-09-21,119.81,120.42,117.51,117.84,117.84,3618000 +2004-09-20,116.95,121.6,116.77,119.36,119.36,5319700 +2004-09-17,114.42,117.49,113.55,117.49,117.49,4741000 +2004-09-16,112.34,115.8,111.65,113.97,113.97,4637800 +2004-09-15,110.56,114.23,110.2,112,112,5361900 +2004-09-14,107.45,112,106.79,111.49,111.49,5419900 +2004-09-13,106.63,108.41,106.46,107.5,107.5,3926000 +2004-09-10,101.6,106.56,101.3,105.33,105.33,4353800 +2004-09-09,102.53,102.71,101,102.31,102.31,2032900 +2004-09-08,100.74,103.03,100.5,102.3,102.3,2495300 +2004-09-07,101.01,102,99.61,101.58,101.58,2926700 +2004-09-03,100.95,101.74,99.32,100.01,100.01,2578800 +2004-09-02,99.19,102.37,98.94,101.51,101.51,7566900 +2004-09-01,102.7,102.97,99.67,100.25,100.25,4573700 +2004-08-31,102.3,103.71,102.16,102.37,102.37,2461400 +2004-08-30,105.28,105.49,102.01,102.01,102.01,2601000 +2004-08-27,108.1,108.62,105.69,106.15,106.15,3109000 +2004-08-26,104.95,107.95,104.66,107.91,107.91,3551000 +2004-08-25,104.96,108,103.88,106,106,4598900 +2004-08-24,111.24,111.6,103.57,104.87,104.87,7631300 +2004-08-23,110.75,113.48,109.05,109.4,109.4,9137200 +2004-08-20,101.01,109.08,100.5,108.31,108.31,11428600 +2004-08-19,100,104.06,95.96,100.34,100.34,22351900 \ No newline at end of file diff --git a/1st_copy/_ref/steps.ods b/1st_copy/_ref/steps.ods new file mode 100644 index 0000000..537284d Binary files /dev/null and b/1st_copy/_ref/steps.ods differ diff --git a/1st_copy/_ref/test.csv b/1st_copy/_ref/test.csv new file mode 100644 index 0000000..c4cc6e6 --- /dev/null +++ b/1st_copy/_ref/test.csv @@ -0,0 +1,15 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2008-07-04,460,463.24,449.4,450.26,450.26,4848500 +2008-07-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-06-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-06-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-05-08,452.02,452.94,417.55,419.95,419.95,9017900 +2008-05-05,445.49,452.46,440.08,444.25,444.25,4534300 +2008-04-04,460,463.24,449.4,450.26,450.26,4848500 +2008-04-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-03-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-03-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-02-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-02-27,473.73,474.83,464.84,468.58,468.58,4387100 +2008-01-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-01-27,473.73,474.83,464.84,468.58,468.58,4387100 \ No newline at end of file diff --git a/1st_copy/build.sh b/1st_copy/build.sh new file mode 100644 index 0000000..faf92b1 --- /dev/null +++ b/1st_copy/build.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +rm -rf _temp/* +rm -rf delivery.zip + +mkdir -p _temp + +set -ex + +cp src/main.py _temp/XXXXXXXX_project.py + +pushd _temp + 7za a -tzip ../delivery1.zip * +popd + +rm -rf _temp \ No newline at end of file diff --git a/1st_copy/src/Pipfile b/1st_copy/src/Pipfile new file mode 100644 index 0000000..0757494 --- /dev/null +++ b/1st_copy/src/Pipfile @@ -0,0 +1,11 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] + +[dev-packages] + +[requires] +python_version = "3.11" diff --git a/1st_copy/src/main.py b/1st_copy/src/main.py new file mode 100644 index 0000000..7fbb69b --- /dev/null +++ b/1st_copy/src/main.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 + +# Do not include any code not written by you in your project. +# You are NOT allowed to import any Python libraries in your solution except the modules namely + # - os (https://docs.python.org/3/library/os.html), + # - sys (https://docs.python.org/3/library/sys.html) and + # - csv (https://docs.python.org/3/library/csv.html). +# +# If cheating is found or the import requirement is violated, you will receive a zero mark. + +import os,sys, csv + +# column from csv file +# COL_DATE: the day of trading +# COL_OPEN: the stock price at the beginning of the trading day +# COL_HIGH: the highest price the stock achieved on the trading day +# COL_LOW: the lowest price the stock achieved on the trading day +# COL_CLOSE: the stock price at the end of the trading day +# COL_ADJ_Close: the adjusted closing price of the trading day (reflecting the stock’s value after accounting for any corporate actions like dividends, stock splits and new stock offerings) +# COL_VOLUME: the total number of shares were traded on the trading day +COL_DATE=0 +COL_OPEN=1 +COL_HIGH=2 +COL_LOW=3 +COL_CLOSE=4 +COL_ADJ_CLOSE=5 +COL_VOLUME=6 + +# append at middle stage +COL_TOTAL_SALE_OF_DAY=7 +COL_MONTH_ONLY=8 +COL_EMA=9 + +# monthly_averages_list +COL_MONTHLY_AVERAGE_PRICE=1 +COL_EMA=2 + + +# get_data_list(csv_file_name) +# This function has one parameter, namely csv_file_name. +# When the function is called, you need to pass along a CSV file name which is used inside the function to open and read the CSV +# file. +# After reading each row, it will be split into a list. The list will then be appended into a main +# list (a list of lists), namely data_list. The data_list will be returned at the end of the +# function. +def get_data_list(csv_file_name): + '''read data list from csv file''' + data_list = [] + try: + with open(csv_file_name, newline='') as csvfile: + temp = [] + temp = csv.reader(csvfile, delimiter=',', quotechar='"') + data_list = list(temp) + + return data_list + except Exception as e: + print('error during reading csv file ') + print('exitting...') + sys.exit() + + +# get_monthly_averages(data_list) +# This function has one parameter, namely data_list. You need to pass the data_list +# generated by the get_data_list() function as the argument to this function and then +# calculate the monthly average prices of the stock. The average monthly prices are calculated in +# the following way. +# +# 1. Suppose the volume and adjusted closing price of a trading day are V1 and C1, respectively. +# 2. The total sale of that day equals V1 x C1. +# 3. Now, suppose the volume and adjusted closing price of another trading day are V2 and C2, respectively. +# 4. The average of these two trading days is the sum of the total sales divided by the total volume: +# +# Average price = (V1 x C1 + V2 x C2) / (V1 + V2) +# +# To average a whole month, you need to +# - add up the total sales (V1 x C1 + V2 x C2 + ... + Vn x Cn) for each day and +# - divide it by the sum of all volumes (V1 + V2 + ... + Vn) where n is the number of trading days in the month. +# A tuple with 2 items, including the date (year and month only) and the average for that month, +# will be generated for each month. The tuple for each month will be appended to a main list, +# namely monthly_averages_list. The monthly_averages_list will be returned at the end of the function. + +def get_monthly_averages(data_list): + '''calculate the monthly average prices of the stock''' + + monthly_averages_list=[] + data_list_data_only = data_list[1:] + month_available = [] + + # data cleaning + for i in range(len(data_list_data_only)): + # V1 x C1, calculate the total sale, append into column + data_list_data_only[i].append(float(data_list_data_only[i][COL_VOLUME]) * float(data_list_data_only[i][COL_ADJ_CLOSE])) + + # mark the row by YYYY-MM for easy monthly sum calculation, COL_MONTH_ONLY + data_list_data_only[i].append(data_list_data_only[i][COL_DATE][0:7]) + + # get the month in the list YYYY-MM + month_available = set(list(map(lambda x: x[COL_MONTH_ONLY], data_list_data_only))) + + # literate the whole list, calculate the total_sale and total volume + # get the average sale by total_sale / total_volume + for month in sorted(month_available): + filtered_month = list(filter(lambda x: x[COL_MONTH_ONLY] == month, data_list_data_only)) + total_sale = sum(list( map(lambda x: x[COL_TOTAL_SALE_OF_DAY], filtered_month))) + total_volume = sum(list( map(lambda x: float(x[COL_VOLUME]), filtered_month))) + monthly_averages_list.append([month, total_sale/total_volume]) + + return list(monthly_averages_list) + +# get_moving_averages(monthly_averages_list) +# This function has one parameter, namely monthly_averages_list. You need to pass the +# monthly_averages_list generated by get_monthly_averages() as the argument +# to this function and then calculate the 5-month exponential moving average (EMA) stock prices. +# In general, the EMA for a particular month can be calculated by the following formula: +# +# EMA = (Monthly average price – previous month’s EMA) x smoothing constant + previous month’s EMA +# +# where +# +# smoothing constant = 2 / (number of time periods in months + 1) +# +# Initial SMA = 20-period sum / 20 +# Multiplier = (2 / (Time periods + 1) ) = (2 / (20 + 1) ) = 0.0952(9.52%) +# EMA = {Close – EMA(previous day)} x multiplier + EMA(previous day). +def get_moving_averages(monthly_averages_list): + ''' + get moving averages from montyly_average_list + input: + [ [YYYY-MM, monthly average price], + [YYYY-MM, monthly average price], + ...] + + output: + [ [YYYY-MM, monthly average price, EMA], + [YYYY-MM, monthly average price, EMA], + ...] + ''' + + # by ref, the first 5 month EMA were given by SMA + monthly_averages_list[0].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5) + monthly_averages_list[1].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5) + monthly_averages_list[2].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5) + monthly_averages_list[3].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5) + monthly_averages_list[4].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5) + + # smoothing constant = 2 / (number of time periods in months + 1) + smoothing_constant = 2 / (5 + 1) + + # main loop to calculate EMA, start from the 6th month available till the end of the list + for i in range(5, len(monthly_averages_list)): + previous_month_EMA = monthly_averages_list[i-1][2] + Monthly_average_price = monthly_averages_list[i][1] + + EMA = (Monthly_average_price - previous_month_EMA) * smoothing_constant + previous_month_EMA + monthly_averages_list[i].append(EMA) + + return monthly_averages_list + +# Based on the entered CSV file name, a corresponding output text file (e.g. “Google_output.txt” for this case) will be generated. +# In the output file, you are eventually required to print: +# - the best month (with the highest EMA price) and +# - the worst month (with the lowest EMA price) for the stock. +# You need to first print a header line for the stock, and then print a date (MM-YYYY), +# a comma followed by a moving average price (in 2 decimal places) on another line. +def format_date_string(yyyy_mm): + '''rearrange date string from csv file YYYY-MM => MM-YYYY''' + [yyyy, mm] = yyyy_mm.split('-') + return '-'.join([mm, yyyy]) + +def write_output_file(filename_to_write, monthly_averages_list_w_ema, report_name): + '''get output string from template and write to output file + input: + filename_to_write: txt file name with path to be written to + monthly_averages_list_w_ema: list provided with EMA + report_name: report name to be written to report + ''' + + RESULT_TEMPLATE=''' +# The best month for ^report_name^: +# ^best_month^, ^best_EMA^ + +# The worst month for ^report_name^: +# ^worst_month^, ^worst_EMA^ + '''.strip() + + # get the max EMA of the list + best_EMA = max(map(lambda x: x[2], monthly_averages_list_w_ema[5:])) + # get the month(s) by the EMA wanted + best_months = list(map(lambda x: format_date_string(x[0]), filter(lambda x: x[2] == best_EMA, monthly_averages_list_w_ema[5:]))) + + # get the min(worst) EMA of the list + worst_EMA = min(map(lambda x: x[2], monthly_averages_list_w_ema[5:])) + # get the month(s) by the EMA wanted + worst_months = list(map(lambda x: format_date_string(x[0]), filter(lambda x: x[2] == worst_EMA, monthly_averages_list_w_ema[5:]))) + + # assemble the output string + result_string = RESULT_TEMPLATE + result_string = result_string\ + .replace('^best_month^', ','.join(best_months))\ + .replace('^best_EMA^', str('%.2f' % best_EMA))\ + .replace('^worst_month^', ','.join(worst_months))\ + .replace('^worst_EMA^', str('%.2f' % worst_EMA)) \ + .replace('^report_name^', report_name) + + # write output file + with open(filename_to_write, 'w+') as file_write: + file_write.truncate(0) + file_write.writelines(result_string) + +def main(): + # Main function starts here + + print('start') + + # gather csv file with path from user + input_filename = input("Please input a csv filename: ") + + csv_filename = os.path.basename(input_filename) + csv_path = os.path.dirname(input_filename) + + # transform to the output file path by csv file name got + txt_filename = csv_filename.replace('.csv','_output.txt') + if (csv_path != ''): + txt_filename = '/'.join([csv_path, txt_filename]) + else: + # by default keep into current directory + txt_filename = '/'.join(['.', txt_filename]) + + # grep the corp_name from the filename google.csv => google + corp_name = os.path.basename(input_filename).split('.')[0] + + # process the data_list by csv file as stateed in assignment + print(f'processing {csv_filename}') + csv_list=get_data_list(input_filename) + monthly_averages_list = get_monthly_averages(csv_list) + monthly_averages_list_w_EMA = get_moving_averages(monthly_averages_list) + + # write output file + write_output_file(txt_filename, monthly_averages_list_w_EMA, corp_name) + print('wrote to {file} done'.format(file = txt_filename)) + +if __name__ == "__main__": + main() diff --git a/1st_copy/src/test.sh b/1st_copy/src/test.sh new file mode 100644 index 0000000..6ca9689 --- /dev/null +++ b/1st_copy/src/test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + + +python3 ./main.py \ No newline at end of file diff --git a/2nd_copy/NOTES.md b/2nd_copy/NOTES.md new file mode 100644 index 0000000..912a86f --- /dev/null +++ b/2nd_copy/NOTES.md @@ -0,0 +1,112 @@ +### objective + +env: Windows +deadline 23/12 + +### CAUTION + +Do not include any code not written by you in your +project. You are NOT allowed to import any Python libraries in your solution except the +modules namely os (https://docs.python.org/3/library/os.html), sys +(https://docs.python.org/3/library/sys.html) and csv (https://docs.python.org/3/library/csv.html). If +cheating is found or the import requirement is violated, you will receive a zero mark. + +### Deliverable + +You have to include your student name and ID in your source code and name your project solution as +“XXXXXXXX_project.py” (where XXXXXXXX is your 8-digit student ID). Please remember to +upload your source code solution to Moodle by the submission deadline. + +### drill down + +Functions +Given the file of stock prices, you are asked to develop a Python program to process the data by +designing appropriate functions. At minimum you need to implement and call the following three +functions: +• get_data_list(csv_file_name) +This function has one parameter, namely csv_file_name. When the function is called, you +need to pass along a CSV file name which is used inside the function to open and read the CSV +file. After reading each row, it will be split into a list. The list will then be appended into a main +list (a list of lists), namely data_list. The data_list will be returned at the end of the +function. +2 +• get_monthly_averages(data_list) +This function has one parameter, namely data_list. You need to pass the data_list +generated by the get_data_list() function as the argument to this function and then +calculate the monthly average prices of the stock. The average monthly prices are calculated in +the following way. Suppose the volume and adjusted closing price of a trading day are V1 and C1, +respectively. The total sale of that day equals V1 x C1. Now, suppose the volume and adjusted +closing price of another trading day are V2 and C2, respectively. The average of these two trading +days is the sum of the total sales divided by the total volume: +Average price = (V1 x C1 + V2 x C2) / (V1 + V2) +To average a whole month, you need to add up the total sales (V1 x C1 + V2 x C2 + ... + +Vn x Cn) for each day and divide it by the sum of all volumes (V1 + V2 + ... + Vn) where n +is the number of trading days in the month. +A tuple with 2 items, including the date (year and month only) and the average for that month, +will be generated for each month. The tuple for each month will be appended to a main list, +namely monthly_averages_list. The monthly_averages_list will be returned at +the end of the function. +• get_moving_averages(monthly_averages_list) +This function has one parameter, namely monthly_averages_list. You need to pass the +monthly_averages_list generated by get_monthly_averages() as the argument +to this function and then calculate the 5-month exponential moving average (EMA) stock prices. +In general, the EMA for a particular month can be calculated by the following formula: +EMA = (Monthly average price – previous month’s EMA) x smoothing constant + +- previous month’s EMA + where + smoothing constant = 2 / (number of time periods in months + 1) + 3 + For example, the following table shows the stock prices between Oct 2020 and Apr 2021: + Month Monthly Average Price + Oct 2020 14 + Nov 2020 13 + Dec 2020 14 + Jan 2021 12 + Feb 2021 13 + Mar 2021 12 + Apr 2021 11 + The initial 5-month EMA for Feb 2021 can be calculated by the simple average formula, as + shown below: + 5-month EMA for Feb 2021 = (14 + 13 + 14 + 12 + 13) / 5 = 13.2 + The 5-month EMA for Mar 2021 can be calculated by the EMA formula, as shown below: + 5-month EMA for Mar 2021 = (Monthly average price – previous month’s EMA) x + smoothing constant + previous month’s EMA + = (12 – 13.2) x (2 / 6) + 13.2 + = 12.8 + The 5-month EMA for Apr 2021 can be calculated by the EMA formula, as shown below: + 5-month EMA for Apr 2021 = (Monthly average price – previous month’s EMA) x + smoothing constant + previous month’s EMA + = (11 – 12.8) x (2 / 6) + 12.8 + = 12.2 + The resulting 5-month EMA stock prices are shown below: + Month Average Price 5-month EMA Price + Oct 2020 14 - + Nov 2020 13 - + Dec 2020 14 - + Jan 2021 12 - + Feb 2021 13 13.2 + Mar 2021 12 12.8 + Apr 2021 11 12.2 + 4 + A tuple with 2 items, including the date (year and month only) and the 5-month EMA price for + that month, will be generated for each month except the first 4 months. Each tuple will be + appended to a main list, namely moving_averages_list. The + moving_averages_list will be returned at the end of the function. + +Program Input and Output +At the outset, your program needs to ask the user for a CSV file name: +Based on the entered CSV file name, a corresponding output text file (e.g. “Google_output.txt” +for this case) will be generated. In the output file, you are eventually required to print the best month +(with the highest EMA price) and the worst month (with the lowest EMA price) for the stock. You +need to first print a header line for the stock, and then print a date (MM-YYYY), a comma followed by +a moving average price (in 2 decimal places) on another line. You must follow the output format as +shown below (please note the values are not true, which are for reference only) + +IV. Evaluation Criteria (40% of Overall Course Assessment) +The project will be graded using the following criteria: +• 15% - Correctness of program execution and output data +• 10% - Modularization (e.g. dividing the program functionality into different functions) +• 5% - Error handling +• 5% - Consistent style (e.g., capitalization, indenting, etc.) +• 5% - Appropriate comments diff --git a/2nd_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf b/2nd_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf new file mode 100644 index 0000000..59f365f Binary files /dev/null and b/2nd_copy/_ref/INT3075 Project Description (2022-23)_c370323f83a52a514752fe75fceffa43.pdf differ diff --git a/2nd_copy/_ref/google.csv b/2nd_copy/_ref/google.csv new file mode 100644 index 0000000..e4f28e7 --- /dev/null +++ b/2nd_copy/_ref/google.csv @@ -0,0 +1,1031 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2008-09-19,461,462.07,443.28,449.15,449.15,10006000 +2008-09-18,422.64,439.18,410.5,439.08,439.08,8589400 +2008-09-17,438.48,439.14,413.44,414.49,414.49,9126900 +2008-09-16,425.96,449.28,425.49,442.93,442.93,6990700 +2008-09-15,424,441.97,423.71,433.86,433.86,6567400 +2008-09-12,430.21,441.99,429,437.66,437.66,6028000 +2008-09-11,408.35,435.09,406.38,433.75,433.75,6471400 +2008-09-10,424.47,424.48,409.68,414.16,414.16,6226800 +2008-09-09,423.17,432.38,415,418.66,418.66,7229600 +2008-09-08,452.02,452.94,417.55,419.95,419.95,9017900 +2008-09-05,445.49,452.46,440.08,444.25,444.25,4534300 +2008-09-04,460,463.24,449.4,450.26,450.26,4848500 +2008-09-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-09-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-08-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-08-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-08-27,473.73,474.83,464.84,468.58,468.58,4387100 +2008-08-26,483.46,483.46,470.59,474.16,474.16,3308200 +2008-08-25,486.11,497,481.5,483.01,483.01,2014300 +2008-08-22,491.5,494.88,489.48,490.59,490.59,2297200 +2008-08-21,482.92,489.9,479.27,486.53,486.53,3514100 +2008-08-20,494.72,496.69,482.57,485,485,3982100 +2008-08-19,490.43,498.28,486.63,490.5,490.5,3046500 +2008-08-18,509.84,510,495.51,498.3,498.3,3333900 +2008-08-15,506.99,510.66,505.5,510.15,510.15,3545700 +2008-08-14,497.7,507.61,496.29,505.49,505.49,2918600 +2008-08-13,501.6,503.54,493.88,500.03,500.03,3625500 +2008-08-12,502,506.13,498,502.61,502.61,2755700 +2008-08-11,492.47,508.88,491.78,500.84,500.84,4239300 +2008-08-08,480.15,495.75,475.69,495.01,495.01,3739300 +2008-08-07,482,484,476.41,479.12,479.12,2773800 +2008-08-06,478.37,489.77,472.51,486.34,486.34,3375800 +2008-08-05,467.59,480.08,466.33,479.85,479.85,3584500 +2008-08-04,468.12,473.01,461.9,463,463,2487000 +2008-08-01,472.51,473.22,462.5,467.86,467.86,3007900 +2008-07-31,474.56,480.89,471.44,473.75,473.75,2865100 +2008-07-30,485.5,486.02,472.81,482.7,482.7,3490700 +2008-07-29,479.3,487.26,478,483.11,483.11,2802800 +2008-07-28,492.09,492.09,475.13,477.12,477.12,3160000 +2008-07-25,486.49,493.13,481.5,491.98,491.98,3183500 +2008-07-24,496.7,496.87,475.62,475.62,475.62,3540900 +2008-07-23,481.61,497.23,478.1,489.22,489.22,4894100 +2008-07-22,466.72,480.25,465.6,477.11,477.11,4691500 +2008-07-21,480.88,484.09,465.7,468.8,468.8,5901500 +2008-07-18,498.35,498.98,478.19,481.32,481.32,11292400 +2008-07-17,534.16,537.05,524.5,533.44,533.44,8787400 +2008-07-16,514.04,536.5,510.6,535.6,535.6,4742200 +2008-07-15,516.28,527.5,501.1,516.09,516.09,6071000 +2008-07-14,539,540.06,515.45,521.62,521.62,4424800 +2008-07-11,536.5,539.5,519.43,533.8,533.8,4981400 +2008-07-10,545,549.5,530.72,540.57,540.57,4331700 +2008-07-09,550.76,555.68,540.73,541.55,541.55,4154000 +2008-07-08,545.99,555.19,540,554.53,554.53,4932400 +2008-07-07,542.3,549,535.6,543.91,543.91,4255200 +2008-07-03,530.88,539.23,527.5,537,537,2400500 +2008-07-02,536.51,540.38,526.06,527.04,527.04,4223000 +2008-07-01,519.58,536.72,517,534.73,534.73,4959900 +2008-06-30,532.47,538,523.06,526.42,526.42,3765300 +2008-06-27,527.68,530,515.09,528.07,528.07,5436900 +2008-06-26,544.1,544.93,528.26,528.82,528.82,5659500 +2008-06-25,544.97,557.8,543.67,551,551,4122200 +2008-06-24,545.14,551.19,535.1,542.3,542.3,4672600 +2008-06-23,545.36,553.15,542.02,545.21,545.21,3635900 +2008-06-20,556.98,556.98,544.51,546.43,546.43,5983100 +2008-06-19,555.35,563.78,550.81,560.2,560.2,5683100 +2008-06-18,564.51,568.99,559.16,562.38,562.38,3381200 +2008-06-17,576.35,578.07,568.38,569.46,569.46,3462900 +2008-06-16,566.5,579.1,566.5,572.81,572.81,3542800 +2008-06-13,561.49,575.7,561.34,571.51,571.51,6184400 +2008-06-12,548.76,558,546.88,552.95,552.95,5491600 +2008-06-11,556.24,557.34,544.46,545.2,545.2,3812900 +2008-06-10,549.56,558.82,546.78,554.17,554.17,3657400 +2008-06-09,568.06,570,545.4,557.87,557.87,5288300 +2008-06-06,579.75,580.72,567,567,567,4734500 +2008-06-05,577.08,588.04,576.21,586.3,586.3,3916700 +2008-06-04,565.33,578,564.55,572.22,572.22,3363200 +2008-06-03,576.5,580.5,560.61,567.3,567.3,4305300 +2008-06-02,582.5,583.89,571.27,575,575,3674200 +2008-05-30,583.47,589.92,581.3,585.8,585.8,3225200 +2008-05-29,574.79,585.88,573.2,583,583,4845000 +2008-05-28,567.94,571.49,561.1,568.24,568.24,4050400 +2008-05-27,544.96,562.6,543.85,560.9,560.9,3865500 +2008-05-23,546.96,553,537.81,544.62,544.62,4431500 +2008-05-22,551.95,554.21,540.25,549.46,549.46,5076300 +2008-05-21,578.52,581.41,547.89,549.99,549.99,6468100 +2008-05-20,574.63,582.48,572.91,578.6,578.6,3313600 +2008-05-19,578.55,588.88,573.52,577.52,577.52,5604500 +2008-05-16,581.43,584.68,578.32,580.07,580.07,4274100 +2008-05-15,579,582.95,575.61,581,581,4342700 +2008-05-14,586.49,591.19,575.25,576.3,576.3,4375800 +2008-05-13,586.23,587.95,578.55,583,583,5163500 +2008-05-12,574.75,586.75,568.91,584.94,584.94,4863900 +2008-05-09,579,585,571.3,573.2,573.2,4484900 +2008-05-08,586.2,589.3,578.91,583.01,583.01,5122900 +2008-05-07,590.27,599.49,576.43,579,579,6613000 +2008-05-06,591,592,583,586.36,586.36,4629300 +2008-05-05,598.86,599,587.13,594.9,594.9,6281000 +2008-05-02,598.49,602.45,579.3,581.29,581.29,6998800 +2008-05-01,578.31,594.93,576.97,593.08,593.08,6602800 +2008-04-30,562.21,584.86,558.47,574.29,574.29,7903000 +2008-04-29,550.83,563.4,550.01,558.47,558.47,4346000 +2008-04-28,545.88,556.81,539,552.12,552.12,4008600 +2008-04-25,549.02,553,542.73,544.06,544.06,4164400 +2008-04-24,551.29,554.49,540.02,543.04,543.04,4135100 +2008-04-23,557.94,559.31,540.95,546.49,546.49,4921500 +2008-04-22,537.57,560.83,537.56,555,555,7938500 +2008-04-21,539.39,542.59,530.29,537.79,537.79,7439700 +2008-04-18,535.21,547.7,524.77,539.41,539.41,18235600 +2008-04-17,455.63,459.37,446.52,449.54,449.54,13353000 +2008-04-16,444.4,458.28,441,455.03,455.03,7620200 +2008-04-15,458.13,459.72,443.72,446.84,446.84,4577600 +2008-04-14,457.16,457.45,450.15,451.66,451.66,3842600 +2008-04-11,464.07,467.26,455.01,457.45,457.45,4151500 +2008-04-10,464.96,473.86,461.85,469.08,469.08,5072400 +2008-04-09,469.13,472,457.54,464.19,464.19,6048100 +2008-04-08,473.04,474.14,462.01,467.81,467.81,4547000 +2008-04-07,477.03,485.44,473.53,476.82,476.82,5943500 +2008-04-04,457.01,477.83,456.2,471.09,471.09,5897200 +2008-04-03,461.73,463.29,448.13,455.12,455.12,6778400 +2008-04-02,469.9,475.74,460.39,465.7,465.7,5999000 +2008-04-01,447.74,466.5,446.87,465.71,465.71,6093100 +2008-03-31,435.64,442.69,432.01,440.47,440.47,4446400 +2008-03-28,447.46,453.57,434.31,438.08,438.08,4376200 +2008-03-27,446,448.61,440.49,444.08,444.08,5832200 +2008-03-26,452.59,462.87,449.29,458.19,458.19,5214200 +2008-03-25,457.46,457.47,446,450.78,450.78,5831600 +2008-03-24,438.43,465.78,437.72,460.56,460.56,6763500 +2008-03-20,427.32,435.7,417.5,433.55,433.55,9900400 +2008-03-19,441.11,447.5,431.67,432,432,6179000 +2008-03-18,428.98,440.84,425.53,439.16,439.16,7237200 +2008-03-17,427.99,433.71,412.11,419.87,419.87,7888200 +2008-03-14,442.98,449.34,430.62,437.92,437.92,6574400 +2008-03-13,432.67,446.98,428.78,443.01,443.01,7726600 +2008-03-12,440.01,447.88,438.07,440.18,440.18,6651900 +2008-03-11,425.26,440.15,424.65,439.84,439.84,8826900 +2008-03-10,428.83,431,413.04,413.62,413.62,7987600 +2008-03-07,428.88,440,426.24,433.35,433.35,8071800 +2008-03-06,447.69,453.3,431.18,432.7,432.7,7470100 +2008-03-05,445.25,454.17,444,447.7,447.7,7436600 +2008-03-04,450.95,453.36,435.78,444.6,444.6,13621700 +2008-03-03,471.51,472.72,450.11,457.02,457.02,7554500 +2008-02-29,471.87,479.74,464.65,471.18,471.18,9425400 +2008-02-28,470.5,479.09,467.36,475.39,475.39,6586900 +2008-02-27,460.13,475.49,459.64,472.86,472.86,10121900 +2008-02-26,461.2,466.47,446.85,464.19,464.19,23287300 +2008-02-25,505.95,506.5,485.74,486.44,486.44,8350800 +2008-02-22,502.06,509,497.55,507.8,507.8,5515900 +2008-02-21,512.85,513.21,499.5,502.86,502.86,5677800 +2008-02-20,503.51,511.01,498.82,509,509,6662200 +2008-02-19,534.94,535.06,506.5,508.95,508.95,6350400 +2008-02-15,528.31,532.66,524.33,529.64,529.64,5240100 +2008-02-14,538.35,541.04,531,532.25,532.25,6476700 +2008-02-13,522.5,534.99,518.69,534.62,534.62,6624700 +2008-02-12,523.39,530.6,513.03,518.09,518.09,6662300 +2008-02-11,520.52,523.71,513.4,521.16,521.16,5826000 +2008-02-08,509.41,517.73,508.7,516.69,516.69,6828900 +2008-02-07,496.86,514.19,494.76,504.95,504.95,7928900 +2008-02-06,511.14,511.17,497.93,501.71,501.71,7636400 +2008-02-05,489.43,509,488.52,506.8,506.8,11203300 +2008-02-04,509.07,512.78,492.55,495.43,495.43,13157100 +2008-02-01,528.67,536.67,510,515.9,515.9,17600500 +2008-01-31,539.01,573,534.29,564.3,564.3,14722000 +2008-01-30,549.19,560.43,543.51,548.27,548.27,7939600 +2008-01-29,560.47,561.33,540.67,550.52,550.52,6283000 +2008-01-28,570.97,572.24,548.6,555.98,555.98,5806100 +2008-01-25,591.81,595,566.18,566.4,566.4,6951800 +2008-01-24,558.8,579.69,554.14,574.49,574.49,9400900 +2008-01-23,560.71,568,519,548.62,548.62,16965700 +2008-01-22,562.03,597.5,561.2,584.35,584.35,9490200 +2008-01-18,608.36,609.99,598.45,600.25,600.25,8539600 +2008-01-17,620.76,625.74,598.01,600.79,600.79,8216800 +2008-01-16,628.97,639.99,601.93,615.95,615.95,10560000 +2008-01-15,645.9,649.05,635.38,637.65,637.65,5568200 +2008-01-14,651.14,657.4,645.25,653.82,653.82,4447500 +2008-01-11,642.7,649.47,630.11,638.25,638.25,4977000 +2008-01-10,645.01,657.2,640.11,646.73,646.73,6334200 +2008-01-09,630.04,653.34,622.51,653.2,653.2,6739700 +2008-01-08,653,659.96,631,631.68,631.68,5339100 +2008-01-07,653.94,662.28,637.35,649.25,649.25,6403400 +2008-01-04,679.69,680.96,655,657,657,5359800 +2008-01-03,685.26,686.85,676.52,685.33,685.33,3252500 +2008-01-02,692.87,697.37,677.73,685.19,685.19,4306900 +2007-12-31,698.57,702.49,690.58,691.48,691.48,2376200 +2007-12-28,704.93,707.95,696.54,702.53,702.53,2537000 +2007-12-27,707.07,716,700.74,700.74,700.74,2942500 +2007-12-26,698.99,713.22,698.21,710.84,710.84,2530000 +2007-12-24,694.99,700.73,693.06,700.73,700.73,1628400 +2007-12-21,697.88,699.26,693.24,696.69,696.69,5382000 +2007-12-20,685.83,691,680.61,689.69,689.69,4422200 +2007-12-19,674.21,679.5,669,677.37,677.37,4421100 +2007-12-18,674.16,676.71,652.5,673.35,673.35,7166700 +2007-12-17,688,695.42,663.67,669.23,669.23,5486000 +2007-12-14,687.51,699.7,687.26,689.96,689.96,3673500 +2007-12-13,696.31,697.62,681.21,694.05,694.05,5040800 +2007-12-12,714,714.32,688.5,699.35,699.35,6159100 +2007-12-11,719.94,720.99,698.78,699.2,699.2,6139100 +2007-12-10,715.99,724.8,714,718.42,718.42,3856200 +2007-12-07,714.99,718,710.5,714.87,714.87,3852100 +2007-12-06,697.8,716.56,697.01,715.26,715.26,4909000 +2007-12-05,692.73,698.93,687.5,698.51,698.51,4209600 +2007-12-04,678.31,692,677.12,684.16,684.16,4231800 +2007-12-03,691.01,695,681.14,681.53,681.53,4325100 +2007-11-30,711,711.06,682.11,693,693,7895500 +2007-11-29,690.75,702.79,687.77,697,697,6208000 +2007-11-28,682.11,694.3,672.14,692.26,692.26,7916500 +2007-11-27,674.8,676.43,650.26,673.57,673.57,8904500 +2007-11-26,680.2,693.4,665,666,666,6790100 +2007-11-23,670,678.28,668.11,676.7,676.7,2738700 +2007-11-21,643.77,669.97,642.08,660.52,660.52,7013500 +2007-11-20,636.48,659.1,632.87,648.54,648.54,9816900 +2007-11-19,629.59,636.77,618.5,625.85,625.85,5527400 +2007-11-16,633.94,635.49,616.02,633.63,633.63,9042800 +2007-11-15,638.57,647.5,624,629.65,629.65,6967700 +2007-11-14,673.28,675.49,636.27,641.68,641.68,8094700 +2007-11-13,644.99,660.92,632.07,660.55,660.55,8426100 +2007-11-12,657.74,669.93,626.21,632.07,632.07,10227300 +2007-11-09,675.78,681.88,661.21,663.97,663.97,11388100 +2007-11-08,734.6,734.89,677.18,693.84,693.84,16512200 +2007-11-07,741.13,747.24,723.14,732.94,732.94,8252900 +2007-11-06,737.56,741.79,725,741.79,741.79,8436300 +2007-11-05,706.99,730.23,706.07,725.65,725.65,8883700 +2007-11-02,710.51,713.58,697.34,711.25,711.25,5841500 +2007-11-01,702.79,713.72,701.78,703.21,703.21,6527200 +2007-10-31,700.69,707,696.04,707,707,6876800 +2007-10-30,677.51,699.91,677.51,694.77,694.77,6887700 +2007-10-29,677.77,680,672.09,679.23,679.23,3066300 +2007-10-26,674.03,676.54,668.06,674.6,674.6,3353900 +2007-10-25,678.68,678.97,663.55,668.51,668.51,5795500 +2007-10-24,672.71,677.47,659.56,675.82,675.82,7404200 +2007-10-23,661.25,677.6,660,675.77,675.77,6793700 +2007-10-22,638.67,655,636.28,650.75,650.75,6598200 +2007-10-19,654.56,658.49,643.23,644.71,644.71,15768400 +2007-10-18,635.41,641.37,628.5,639.62,639.62,12289200 +2007-10-17,630.45,634,621.59,633.48,633.48,6007000 +2007-10-16,618.49,625.92,611.99,616,616,6014100 +2007-10-15,638.47,639.86,615.55,620.11,620.11,6943800 +2007-10-12,623.98,638.4,618.24,637.39,637.39,6823700 +2007-10-11,633.64,641.41,609,622,622,11799000 +2007-10-10,621.36,625.68,616.8,625.39,625.39,5343600 +2007-10-09,615.11,623.78,608.39,615.18,615.18,8767800 +2007-10-08,595,610.26,593.95,609.62,609.62,5028000 +2007-10-05,587.11,596,587.01,594.05,594.05,5068700 +2007-10-04,585.09,585.09,577.06,579.03,579.03,2986700 +2007-10-03,586.25,588.99,580.36,584.02,584.02,3879500 +2007-10-02,583.38,596.81,580.01,584.39,584.39,7056600 +2007-10-01,569.97,584.35,569.61,582.55,582.55,4711300 +2007-09-28,567,569.55,564.12,567.27,567.27,2497800 +2007-09-27,571.73,571.74,565.78,567.5,567.5,2034300 +2007-09-26,570.4,571.79,563.81,568.16,568.16,3346100 +2007-09-25,564,569.56,562.86,569,569,2730600 +2007-09-24,561,571.46,560,568.02,568.02,5297000 +2007-09-21,556.34,560.79,552.83,560.1,560.1,8011700 +2007-09-20,547,556.8,546.03,552.83,552.83,5525000 +2007-09-19,539.27,549.45,538.86,546.85,546.85,5526900 +2007-09-18,526.52,537.25,524.27,535.27,535.27,4215700 +2007-09-17,526.53,529.28,524.07,525.3,525.3,2197500 +2007-09-14,523.2,530.27,522.22,528.75,528.75,2764900 +2007-09-13,524.06,527.21,523.22,524.78,524.78,1891100 +2007-09-12,520.53,527.98,519,522.65,522.65,2986000 +2007-09-11,516.99,521.65,515.73,521.33,521.33,2703600 +2007-09-10,521.28,522.07,510.88,514.48,514.48,3225800 +2007-09-07,517.86,521.24,516.8,519.35,519.35,3663600 +2007-09-06,529.36,529.83,518.24,523.52,523.52,3625900 +2007-09-05,523.4,529.48,522.25,527.8,527.8,3312900 +2007-09-04,515.02,528,514.62,525.15,525.15,3693700 +2007-08-31,513.1,516.5,511.47,515.25,515.25,2977600 +2007-08-30,512.36,515.4,510.58,511.4,511.4,2651700 +2007-08-29,507.84,513.3,507.23,512.88,512.88,2549300 +2007-08-28,511.53,514.98,505.79,506.4,506.4,3273900 +2007-08-27,514.43,517.45,511.4,513.26,513.26,2325100 +2007-08-24,512.61,515.55,508.5,515,515,2472700 +2007-08-23,516,516.13,507,512.19,512.19,3076700 +2007-08-22,509.96,516.25,509.25,512.75,512.75,3252700 +2007-08-21,498.94,508.16,497.77,506.61,506.61,3610600 +2007-08-20,502.46,502.56,496,497.92,497.92,2697300 +2007-08-17,497.44,501,491.65,500.04,500.04,5479400 +2007-08-16,492.02,496.43,480.46,491.52,491.52,8645600 +2007-08-15,509,511.69,496.71,497.55,497.55,5409500 +2007-08-14,515.72,517.4,508,508.6,508.6,3633700 +2007-08-13,519.54,519.75,513.03,515.5,515.5,3179300 +2007-08-10,510.18,518.72,505.63,515.75,515.75,5875200 +2007-08-09,520.8,526.82,514.63,514.73,514.73,4846500 +2007-08-08,519.34,525.78,517.09,525.78,525.78,4068800 +2007-08-07,509.75,519.88,509.04,516.02,516.02,4264300 +2007-08-06,503,510.15,502.5,510,510,3651500 +2007-08-03,510.05,513.2,503,503,503,3176200 +2007-08-02,513.72,514.99,509,511.01,511.01,3154900 +2007-08-01,510.5,516.51,508.14,512.94,512.94,4421500 +2007-07-31,520.23,520.44,510,510,510,4270500 +2007-07-30,512.92,519.34,510.5,516.11,516.11,3963300 +2007-07-27,508.53,516.62,505.5,511.89,511.89,5509100 +2007-07-26,508.74,512.59,498.88,508,508,6883400 +2007-07-25,516.98,517.02,505.56,509.76,509.76,5545000 +2007-07-24,509.3,518.69,507.11,514,514,5572100 +2007-07-23,519.01,520,512.15,512.51,512.51,6356700 +2007-07-20,511.9,523.18,509.5,520.12,520.12,17772300 +2007-07-19,553.46,553.52,542.24,548.59,548.59,11127200 +2007-07-18,553.89,554.5,543.81,549.5,549.5,6080000 +2007-07-17,555.04,557.73,552.38,555,555,4328600 +2007-07-16,550.3,558.58,549.31,552.99,552.99,6599500 +2007-07-13,547.91,552.67,547.25,552.16,552.16,5237100 +2007-07-12,545.86,547.32,540.22,545.33,545.33,3441600 +2007-07-11,543.61,546.5,540.01,544.47,544.47,3309300 +2007-07-10,543.79,547,541.65,543.34,543.34,3856000 +2007-07-09,543,548.74,540.26,542.56,542.56,3729800 +2007-07-06,541.25,543.87,538.73,539.4,539.4,2747000 +2007-07-05,535.56,544.4,532.15,541.63,541.63,4942900 +2007-07-03,531.06,534.4,527.5,534.34,534.34,1871800 +2007-07-02,525.49,531.85,524.2,530.38,530.38,3487600 +2007-06-29,526.02,527.4,519.46,522.7,522.7,3880600 +2007-06-28,524.88,529.5,523.8,525.01,525.01,4168400 +2007-06-27,525,527.99,519.56,526.29,526.29,6123100 +2007-06-26,532.73,533.2,526.24,530.26,530.26,5689500 +2007-06-25,528.98,534.99,523.38,527.42,527.42,7925000 +2007-06-22,516.42,524.99,516.1,524.98,524.98,7203700 +2007-06-21,510.98,515.29,506.28,514.11,514.11,4409700 +2007-06-20,516.96,518.75,509.06,509.97,509.97,4338200 +2007-06-19,514.01,517.25,511.54,514.31,514.31,4355300 +2007-06-18,506.18,516,504.24,515.2,515.2,4835900 +2007-06-15,508.19,509,501.23,505.89,505.89,6174100 +2007-06-14,505.38,505.88,501.7,502.84,502.84,4621200 +2007-06-13,507.09,508.54,498.69,505.24,505.24,7034000 +2007-06-12,508.71,511.67,503.17,504.77,504.77,6419500 +2007-06-11,514.02,518.25,510,511.34,511.34,4647700 +2007-06-08,516.2,519.64,509.46,515.49,515.49,6358200 +2007-06-07,519.75,526.5,512.51,515.06,515.06,10630500 +2007-06-06,516.75,520.78,515.26,518.25,518.25,7886700 +2007-06-05,509.75,519,506.61,518.84,518.84,10447100 +2007-06-04,497.91,510.51,497.59,507.07,507.07,7101000 +2007-06-01,501,505.02,497.93,500.4,500.4,4799000 +2007-05-31,500.56,508.78,497.06,497.91,497.91,8924300 +2007-05-30,484.5,498.84,483,498.6,498.6,7245800 +2007-05-29,485,491.8,484,487.11,487.11,5218000 +2007-05-25,479.7,484.95,477.27,483.52,483.52,5348500 +2007-05-24,475.15,479.2,471.5,474.33,474.33,4173600 +2007-05-23,480.82,483.41,473.75,473.97,473.97,5060200 +2007-05-22,473,479.01,473,475.86,475.86,3839000 +2007-05-21,469.53,479.2,466.72,470.6,470.6,6159300 +2007-05-18,472.03,472.7,469.75,470.32,470.32,3695900 +2007-05-17,472.46,475.22,470.81,470.96,470.96,4660600 +2007-05-16,462,473.14,459.02,472.61,472.61,6554200 +2007-05-15,461.96,462.54,457.41,458,458,4119000 +2007-05-14,465.48,467.51,460,461.78,461.78,3872700 +2007-05-11,461.83,467,461,466.74,466.74,2944100 +2007-05-10,467.04,469.49,461.02,461.47,461.47,3686300 +2007-05-09,466.15,471.73,463.88,469.25,469.25,3889900 +2007-05-08,466.13,468.17,464.73,466.81,466.81,2905100 +2007-05-07,472.14,472.82,466.47,467.27,467.27,3020100 +2007-05-04,470.12,474.84,465.88,471.12,471.12,3950000 +2007-05-03,466.22,474.07,465.29,473.23,473.23,3594200 +2007-05-02,468.65,471.08,465.73,465.78,465.78,3062700 +2007-05-01,472.19,472.81,464.17,469,469,3658200 +2007-04-30,479.15,481.35,471.38,471.38,471.38,3641200 +2007-04-27,480.07,482.4,478.33,479.01,479.01,2925700 +2007-04-26,478.1,484.45,477.11,481.18,481.18,4124900 +2007-04-25,480,481.37,476.11,477.99,477.99,3966800 +2007-04-24,478.61,479.98,475.55,477.53,477.53,3694700 +2007-04-23,480.1,485,478.26,479.08,479.08,5674600 +2007-04-20,490.52,492.5,482.02,482.48,482.48,12161500 +2007-04-19,474.5,481.95,469.59,471.65,471.65,11009600 +2007-04-18,471.26,479.9,469.53,476.01,476.01,5670500 +2007-04-17,473.8,476.39,471.6,472.8,472.8,3210100 +2007-04-16,468.46,476.99,468.15,474.27,474.27,5077900 +2007-04-13,468.45,468.77,463.36,466.29,466.29,2794800 +2007-04-12,464,468,462.24,467.39,467.39,2707900 +2007-04-11,466.06,469.4,462.61,464.53,464.53,3812000 +2007-04-10,467.09,470.79,465.16,466.5,466.5,2979300 +2007-04-09,472.98,473,465.59,468.21,468.21,3062100 +2007-04-05,471.3,472.09,469.62,471.51,471.51,2715800 +2007-04-04,472.14,473,469.58,471.02,471.02,3778800 +2007-04-03,464.05,474.25,464,472.6,472.6,6501800 +2007-04-02,457.76,458.53,452.12,458.53,458.53,3448500 +2007-03-30,462.1,463.4,456.14,458.16,458.16,3380200 +2007-03-29,464.55,466,455,460.92,460.92,3988500 +2007-03-28,461.87,465.44,460.15,461.88,461.88,4591600 +2007-03-27,463.55,465.23,460.34,463.62,463.62,3741200 +2007-03-26,460.55,465,455.62,465,465,4710300 +2007-03-23,461.45,463.39,457.08,461.83,461.83,4111300 +2007-03-22,455.61,462.17,452.53,462.04,462.04,5680700 +2007-03-21,445.3,456.57,445.21,456.55,456.55,5798300 +2007-03-20,445.79,447.6,443.6,445.28,445.28,3421500 +2007-03-19,443.25,448.5,440.63,447.23,447.23,5197700 +2007-03-16,445.65,446.7,439.89,440.85,440.85,5659100 +2007-03-15,447.86,449.82,443.94,446.19,446.19,3944200 +2007-03-14,443.23,448.66,439,448,448,8016900 +2007-03-13,450.11,451.93,442.83,443.03,443.03,6377300 +2007-03-12,452.57,455.25,451.11,454.75,454.75,3465400 +2007-03-09,458,458.4,450.1,452.96,452.96,4977700 +2007-03-08,459.22,465.5,454.1,454.72,454.72,5362800 +2007-03-07,462.69,463.14,454.29,455.64,455.64,6534100 +2007-03-06,447.47,459,447.38,457.55,457.55,7533700 +2007-03-05,437.02,445.5,437,440.95,440.95,6355100 +2007-03-02,445.11,448.7,438.68,438.68,438.68,6583600 +2007-03-01,442.67,452.42,440,448.23,448.23,8685200 +2007-02-28,450.41,453.67,443.04,449.45,449.45,8032300 +2007-02-27,455,459.8,447.17,448.77,448.77,9312800 +2007-02-26,472.83,475.25,463.75,464.93,464.93,3969900 +2007-02-23,475.75,476.95,467.8,470.62,470.62,3882600 +2007-02-22,478.69,484.24,474.39,475.85,475.85,5743900 +2007-02-21,469.84,478.68,467.74,475.86,475.86,5640600 +2007-02-20,468.47,472.75,464.71,472.1,472.1,4067600 +2007-02-16,462.8,470.15,462.06,469.94,469.94,6177000 +2007-02-15,466,466.13,460.72,461.47,461.47,4042400 +2007-02-14,460,469.13,459.22,465.93,465.93,5698800 +2007-02-13,459.15,462.78,457.26,459.1,459.1,4062600 +2007-02-12,460.68,462.39,455.02,458.29,458.29,5754500 +2007-02-09,471.65,472.68,461.5,461.89,461.89,4858600 +2007-02-08,468.05,473.75,465.15,471.03,471.03,4076700 +2007-02-07,473.82,474.35,468.78,470.01,470.01,4119800 +2007-02-06,468.1,473.3,467.26,471.48,471.48,5321900 +2007-02-05,477.5,478,466.19,467.16,467.16,7206900 +2007-02-02,482.61,485,477.81,481.5,481.5,6286500 +2007-02-01,506,506.01,481.53,481.75,481.75,15658700 +2007-01-31,496.49,505,495.51,501.5,501.5,12206100 +2007-01-30,494,498,491.22,494.32,494.32,4180500 +2007-01-29,498,498.75,490.5,492.47,492.47,4775700 +2007-01-26,490.93,497.9,487.03,495.84,495.84,5496500 +2007-01-25,501,504.5,485.66,488.09,488.09,6368500 +2007-01-24,484.45,499.54,483.29,499.07,499.07,6059300 +2007-01-23,480.79,484.75,477.29,479.05,479.05,4665500 +2007-01-22,492.5,492.65,478.5,480.84,480.84,5404300 +2007-01-19,487.98,490.76,486.74,489.75,489.75,4978300 +2007-01-18,494.52,496.48,487.43,487.83,487.83,5932000 +2007-01-17,503.39,507.77,494.38,497.28,497.28,6699100 +2007-01-16,507.55,513,503.3,504.28,504.28,7568900 +2007-01-12,501.99,505,500,505,505,4473700 +2007-01-11,497.2,501.75,496.18,499.72,499.72,7208200 +2007-01-10,484.43,493.55,482.04,489.46,489.46,5968500 +2007-01-09,485.45,488.25,481.2,485.5,485.5,5381400 +2007-01-08,487.69,489.87,482.2,483.58,483.58,4754400 +2007-01-05,482.5,487.5,478.11,487.19,487.19,6872100 +2007-01-04,469,483.95,468.35,483.26,483.26,7887600 +2007-01-03,466,476.66,461.11,467.59,467.59,7706500 +2006-12-29,462.1,464.47,459.86,460.48,460.48,2559200 +2006-12-28,467.12,468.58,462.25,462.56,462.56,3116200 +2006-12-27,460,468.08,459.1,468.03,468.03,4231500 +2006-12-26,456.52,459.47,454.59,457.53,457.53,2074300 +2006-12-22,457.5,458.64,452.73,455.58,455.58,3988300 +2006-12-21,464.18,465.25,452.34,456.2,456.2,6953300 +2006-12-20,470,471.5,462.33,462.9,462.9,4367800 +2006-12-19,461.72,469.31,458.5,468.63,468.63,6587000 +2006-12-18,482.51,482.74,460.72,462.8,462.8,8016600 +2006-12-15,482.64,484.11,479.84,480.3,480.3,5190800 +2006-12-14,480.25,483.75,477.26,482.12,482.12,4748900 +2006-12-13,484.69,485.5,477.02,478.99,478.99,4662100 +2006-12-12,483.85,486.36,480.28,481.78,481.78,4181000 +2006-12-11,484.92,488.9,483.8,483.93,483.93,3263400 +2006-12-08,481.94,488.6,480,484.11,484.11,3974900 +2006-12-07,490.23,491.8,482.42,482.64,482.64,4664300 +2006-12-06,486.96,492.4,484.52,488.71,488.71,4450300 +2006-12-05,487.4,489.44,484.89,487,487,4103000 +2006-12-04,483,487.43,479.35,484.85,484.85,4899900 +2006-12-01,485.98,488.39,478.5,480.8,480.8,5631400 +2006-11-30,484.19,490.4,481.55,484.81,484.81,5577500 +2006-11-29,494.24,494.74,482.25,484.65,484.65,6315300 +2006-11-28,481.13,489.86,477.03,489.5,489.5,7797600 +2006-11-27,501.37,501.78,484.75,484.75,484.75,7324700 +2006-11-24,504.5,507.5,504,505,505,1732700 +2006-11-22,510.97,513,505.78,508.01,508.01,4500700 +2006-11-21,496.54,510,495.83,509.65,509.65,8427500 +2006-11-20,498.4,498.4,492.65,495.05,495.05,5124500 +2006-11-17,493.25,499.66,493,498.79,498.79,5511000 +2006-11-16,495,497.68,492.56,495.9,495.9,5092600 +2006-11-15,493.43,499.85,491.93,491.93,491.93,8370700 +2006-11-14,480.7,489.95,480.5,489.3,489.3,7223400 +2006-11-13,474.9,481.17,474.14,481.03,481.03,4341900 +2006-11-10,473.78,474.72,470.29,473.55,473.55,2796700 +2006-11-09,476.5,479.49,471.86,472.63,472.63,4879200 +2006-11-08,470.35,481.74,468.6,475,475,7965000 +2006-11-07,476.95,479.02,471.77,472.57,472.57,4897100 +2006-11-06,473.77,479.66,472.33,476.95,476.95,4991500 +2006-11-03,472.23,473.75,465.06,471.8,471.8,4907700 +2006-11-02,467.5,473.73,466.38,469.91,469.91,5236700 +2006-11-01,478.76,479.13,465.26,467.5,467.5,5426300 +2006-10-31,478.06,482.16,473.84,476.39,476.39,6285400 +2006-10-30,474.82,480.46,470.01,476.57,476.57,6563100 +2006-10-27,483.9,485.24,472.49,475.2,475.2,6604000 +2006-10-26,487.68,491.96,484.2,485.1,485.1,7031700 +2006-10-25,477.49,488.5,475.11,486.6,486.6,9187500 +2006-10-24,476.28,477.86,471.41,473.31,473.31,8660200 +2006-10-23,462.28,484.64,460.37,480.78,480.78,15104500 +2006-10-20,458.99,460.1,453.59,459.67,459.67,11647900 +2006-10-19,420.23,429.5,419.57,426.06,426.06,11503500 +2006-10-18,422.99,424.75,417.5,419.31,419.31,6017300 +2006-10-17,420.3,423.75,416.7,420.64,420.64,5211000 +2006-10-16,427.7,429.2,421.34,421.75,421.75,4319400 +2006-10-13,427.76,429.5,425.56,427.3,427.3,3622500 +2006-10-12,428.56,429.68,424,427.44,427.44,4844000 +2006-10-11,425.02,429.91,423.76,426.5,426.5,5635400 +2006-10-10,431.56,437.85,422.39,426.65,426.65,9788600 +2006-10-09,424.8,431.95,423.42,429,429,7583300 +2006-10-06,410.22,421.91,409.75,420.5,420.5,7336500 +2006-10-05,414.7,418.24,410.86,411.81,411.81,5789800 +2006-10-04,404.97,415.77,403.05,415.7,415.7,6661800 +2006-10-03,401.29,406.46,398.19,404.04,404.04,5464700 +2006-10-02,401.9,406,400.8,401.44,401.44,3651900 +2006-09-29,405.13,405.62,401.41,401.9,401.9,3310900 +2006-09-28,404.08,406.98,400.54,403.58,403.58,5107400 +2006-09-27,406.3,411.22,402.37,402.92,402.92,5876700 +2006-09-26,405.5,407.68,401.77,406.87,406.87,5289400 +2006-09-25,405.58,409.45,402.5,403.98,403.98,5737300 +2006-09-22,404.98,407.45,401.36,403.78,403.78,4649600 +2006-09-21,400.3,408.45,399.86,406.85,406.85,10692100 +2006-09-20,407.1,407.39,394.62,397,397,9147800 +2006-09-19,415.46,415.49,392.74,403.81,403.81,14292900 +2006-09-18,410,418.69,409.47,414.69,414.69,7106700 +2006-09-15,407.48,410.05,406.74,409.88,409.88,7838200 +2006-09-14,404.3,406.28,401.93,403.98,403.98,5366100 +2006-09-13,395.15,406.76,395.1,406.57,406.57,9768200 +2006-09-12,385,392.73,384.88,391.9,391.9,5442200 +2006-09-11,378.26,384.69,377.77,384.09,384.09,4529200 +2006-09-08,376.72,380.79,376.72,377.85,377.85,3083400 +2006-09-07,379.39,381.75,377.4,378.49,378.49,3842000 +2006-09-06,382.1,383.19,379.66,380.14,380.14,3724100 +2006-09-05,379.87,385.4,377.44,384.36,384.36,4074300 +2006-09-01,380.99,381.28,377.19,378.6,378.6,2672900 +2006-08-31,381.49,382.15,378.2,378.53,378.53,2959900 +2006-08-30,379.21,384.65,378.51,380.75,380.75,4044400 +2006-08-29,380.78,382.32,377.2,378.95,378.95,4460000 +2006-08-28,375.61,380.95,375,380.95,380.95,4164000 +2006-08-25,373.08,375.32,372.5,373.26,373.26,2466700 +2006-08-24,374.44,376.4,372.26,373.73,373.73,3482500 +2006-08-23,377.64,378.27,372.66,373.43,373.43,3642300 +2006-08-22,377.73,379.26,374.84,378.29,378.29,4164100 +2006-08-21,378.1,379,375.22,377.3,377.3,4023300 +2006-08-18,386.31,387.09,380.75,383.36,383.36,4952200 +2006-08-17,386.39,390,383.92,385.8,385.8,5080200 +2006-08-16,383.48,388.45,382.12,387.72,387.72,5853200 +2006-08-15,374.11,381.67,372.6,380.97,380.97,6698200 +2006-08-14,371.5,375.13,368.67,369.43,369.43,4968300 +2006-08-11,374.4,375.28,368,368.5,368.5,3766500 +2006-08-10,373.88,377.67,372.46,374.2,374.2,4261900 +2006-08-09,382.8,384.68,376.36,376.94,376.94,4311000 +2006-08-08,382.82,384.5,379.09,381,381,5743200 +2006-08-07,371.5,379.73,371.15,377.95,377.95,3946900 +2006-08-04,379.56,380.68,371.75,373.85,373.85,5095200 +2006-08-03,364.98,377.91,363.36,375.39,375.39,6327000 +2006-08-02,375.6,377.17,365.2,367.23,367.23,7097800 +2006-08-01,385.11,385.77,375.51,375.51,375.51,5463200 +2006-07-31,388,389.17,383.31,386.6,386.6,4595300 +2006-07-28,382,389.56,381.73,388.12,388.12,4083600 +2006-07-27,387.37,387.49,377.95,382.4,382.4,5641100 +2006-07-26,388.2,391.91,383,385.5,385.5,5531900 +2006-07-25,385.02,391.31,383.8,389.36,389.36,5761100 +2006-07-24,392.82,393.89,381.21,390.9,390.9,8086100 +2006-07-21,386.14,391.75,377.69,390.11,390.11,11754600 +2006-07-20,404.28,404.44,385.66,387.12,387.12,12538700 +2006-07-19,395.01,401.14,394.66,399,399,8518500 +2006-07-18,409.75,410.57,397.74,403.05,403.05,8536800 +2006-07-17,404.63,411,403.72,407.89,407.89,5811900 +2006-07-14,410.33,411.49,398.61,403.5,403.5,7552100 +2006-07-13,414,418.34,406.83,408.83,408.83,6924500 +2006-07-12,422.09,422.74,416.73,417.25,417.25,4906700 +2006-07-11,418.51,425.05,413.03,424.56,424.56,5971300 +2006-07-10,423.44,425.23,416.38,418.2,418.2,4436400 +2006-07-07,426.05,427.89,415.88,420.45,420.45,6041900 +2006-07-06,423.38,425.38,421.98,423.19,423.19,3687100 +2006-07-05,421.52,422.8,415.64,421.46,421.46,4985600 +2006-07-03,420.04,423.77,419.45,423.2,423.2,2156700 +2006-06-30,415.6,419.33,412.33,419.33,419.33,6258000 +2006-06-29,407.99,418.2,405.82,417.81,417.81,6658200 +2006-06-28,404.01,406.48,401.13,406.11,406.11,3710500 +2006-06-27,405.71,408,401.01,402.32,402.32,4107100 +2006-06-26,406.75,408.3,403.25,404.22,404.22,3551200 +2006-06-23,402.76,409.75,400.74,404.86,404.86,5314800 +2006-06-22,401.58,406,388,399.95,399.95,5911900 +2006-06-21,391.06,404,389.75,402.13,402.13,8744400 +2006-06-20,388.03,391.87,386.51,387.17,387.17,4039900 +2006-06-19,390.85,394.8,386.98,388.14,388.14,7633100 +2006-06-16,389.1,390.93,388,390.7,390.7,5304600 +2006-06-15,386.62,392.25,383,391,391,6785700 +2006-06-14,389.83,391.1,378.52,384.39,384.39,7772000 +2006-06-13,380.9,387,378.12,386.52,386.52,7659100 +2006-06-12,388.34,390.49,381,381.54,381.54,5019100 +2006-06-09,392.19,395.43,385.35,386.57,386.57,6157500 +2006-06-08,387.75,394.27,378.59,393.3,393.3,10359500 +2006-06-07,393.24,394.86,386.5,386.51,386.51,8911300 +2006-06-06,376.58,390,376.3,389.99,389.99,10259800 +2006-06-05,376.18,381.45,374.15,374.44,374.44,5558500 +2006-06-02,386.84,387.08,377.45,379.44,379.44,6386400 +2006-06-01,373.54,382.99,371.6,382.62,382.62,6278000 +2006-05-31,373.8,378.25,366.78,371.82,371.82,7981300 +2006-05-30,378.28,381,371.45,371.94,371.94,4316000 +2006-05-26,384.55,385.88,380.03,381.35,381.35,3667000 +2006-05-25,379.08,383,372.31,382.99,382.99,8194600 +2006-05-24,377.35,383.44,371.61,381.25,381.25,9553800 +2006-05-23,374.21,383.88,373.56,375.58,375.58,8983000 +2006-05-22,367.85,373.03,365.25,370.95,370.95,8604400 +2006-05-19,373.28,374.5,360.57,370.02,370.02,11398200 +2006-05-18,378.78,381.81,370.71,370.99,370.99,5835000 +2006-05-17,370.61,379.84,370.22,374.5,374.5,10643800 +2006-05-16,375.99,376.86,369.89,371.3,371.3,6491100 +2006-05-15,375.93,380.15,368.25,376.2,376.2,8590100 +2006-05-12,383.54,384.87,373.55,374.13,374.13,10087600 +2006-05-11,403.42,404.71,384.98,387,387,8892800 +2006-05-10,408.31,411.71,401.86,402.98,402.98,6187200 +2006-05-09,395.7,409,393.75,408.8,408.8,9140600 +2006-05-08,395.11,397.12,390.05,394.78,394.78,5118600 +2006-05-05,397.6,400.68,391.78,394.3,394.3,6065000 +2006-05-04,395.03,398.87,392.21,394.75,394.75,4652000 +2006-05-03,396.35,401.5,390.88,394.17,394.17,8072200 +2006-05-02,401.08,402.49,388.4,394.8,394.8,13104300 +2006-05-01,418.47,419.44,398.55,398.9,398.9,10361200 +2006-04-28,418.63,425.73,416.3,417.94,417.94,7421300 +2006-04-27,422.91,426.91,419.39,420.03,420.03,8337900 +2006-04-26,427.74,430.04,423.53,425.97,425.97,7277800 +2006-04-25,439.63,441.04,426,427.16,427.16,9569000 +2006-04-24,439.4,444.7,436.52,440.5,440.5,8836400 +2006-04-21,448.9,450.72,436.17,437.1,437.1,22551300 +2006-04-20,411.01,416,408.2,415,415,12271500 +2006-04-19,412.57,413.64,406.73,410.5,410.5,6781700 +2006-04-18,407.93,409.83,401.5,404.24,404.24,8137600 +2006-04-17,403.45,412.5,400.84,406.82,406.82,8259500 +2006-04-13,408.63,409.76,400.5,402.16,402.16,6552900 +2006-04-12,409,411.33,405.19,408.95,408.95,6017000 +2006-04-11,416.42,419.1,406.22,409.66,409.66,11107200 +2006-04-10,407.08,417.17,405.25,416.38,416.38,9320100 +2006-04-07,412.41,412.85,404.02,406.16,406.16,7025900 +2006-04-06,406.49,413.89,405.43,411.18,411.18,8598500 +2006-04-05,408.2,414.57,402.82,407.99,407.99,13410500 +2006-04-04,389.9,404.9,388.14,404.34,404.34,15715700 +2006-04-03,389.53,392.47,387.93,389.7,389.7,8122700 +2006-03-31,388.74,391.87,384.03,390,390,36521400 +2006-03-30,389.19,393.5,383.61,388.44,388.44,14711700 +2006-03-29,379.94,399,379.51,394.98,394.98,19027500 +2006-03-28,371.71,377.86,371.17,377.2,377.2,8945800 +2006-03-27,367.09,371.71,365,369.69,369.69,7023700 +2006-03-24,368.62,370.09,362.51,365.8,365.8,15180600 +2006-03-23,342.35,345.75,340.2,341.89,341.89,7434700 +2006-03-22,339.75,344.1,337.5,340.22,340.22,7596000 +2006-03-21,350.01,351.66,339.08,339.92,339.92,9831100 +2006-03-20,342.34,350.09,341.54,348.19,348.19,10407600 +2006-03-17,338.8,341.78,334.93,339.79,339.79,8551700 +2006-03-16,348.61,348.75,337.9,338.77,338.77,10016700 +2006-03-15,350.77,352.3,340.53,344.5,344.5,12768800 +2006-03-14,337.14,352.37,332.62,351.16,351.16,18450700 +2006-03-13,340.93,346.1,335.45,337.06,337.06,13642400 +2006-03-10,343.5,344.5,331.55,337.5,337.5,19325600 +2006-03-09,355.39,358.53,341.5,343,343,13910400 +2006-03-08,353.93,360.03,350.54,353.88,353.88,11745600 +2006-03-07,365.02,368.45,358.15,364.45,364.45,10378800 +2006-03-06,380.91,383.4,367.14,368.1,368.1,8939700 +2006-03-03,384.3,387.24,375.76,378.18,378.18,11962000 +2006-03-02,364.28,381.1,362.2,376.45,376.45,18330300 +2006-03-01,368.56,369.45,361.3,364.8,364.8,12061200 +2006-02-28,393.2,397.54,338.51,362.62,362.62,39437600 +2006-02-27,381.27,391.7,380.28,390.38,390.38,10212200 +2006-02-24,377.3,380.07,373.49,377.4,377.4,6484300 +2006-02-23,365.61,381.24,365.39,378.07,378.07,12551600 +2006-02-22,367.15,368.95,363.86,365.49,365.49,6476200 +2006-02-21,366.44,373.54,365.11,366.59,366.59,8686000 +2006-02-17,369.86,372.14,363.62,368.75,368.75,14320200 +2006-02-16,345.67,367,344.49,366.46,366.46,21315500 +2006-02-15,341.27,346,337.83,342.38,342.38,12947000 +2006-02-14,345.33,351.69,342.4,343.32,343.32,14654000 +2006-02-13,346.64,350.6,341.89,345.7,345.7,19717800 +2006-02-10,361.95,364.5,353.14,362.61,362.61,15223500 +2006-02-09,371.2,374.4,356.11,358.77,358.77,11912400 +2006-02-08,368.48,370.69,354.67,369.08,369.08,20804100 +2006-02-07,382.99,383.7,363.35,367.92,367.92,16630200 +2006-02-06,385.31,389.9,379.56,385.1,385.1,8940400 +2006-02-03,393.62,393.9,372.57,381.55,381.55,18281800 +2006-02-02,403.82,406.5,395.98,396.04,396.04,11807700 +2006-02-01,389.03,402,387.52,401.78,401.78,27122500 +2006-01-31,430.57,439.6,423.97,432.66,432.66,22066000 +2006-01-30,429.23,433.28,425,426.82,426.82,8588900 +2006-01-27,435,438.22,428.98,433.49,433.49,8452200 +2006-01-26,439.54,439.99,423.56,434.27,434.27,12926100 +2006-01-25,451.26,454.23,429.22,433,433,18739800 +2006-01-24,436.03,444.95,434.48,443.03,443.03,15464600 +2006-01-23,407.38,428.39,405.73,427.5,427.5,22741400 +2006-01-20,438.7,440.03,394.74,399.46,399.46,41116700 +2006-01-19,451.17,453.49,433,436.45,436.45,14537300 +2006-01-18,447.3,457.36,443.25,444.91,444.91,20485700 +2006-01-17,463.06,469.9,462.53,467.11,467.11,8270300 +2006-01-13,464.31,466.89,461.61,466.25,466.25,7656600 +2006-01-12,473.72,474.99,461.5,463.63,463.63,10125300 +2006-01-11,471.27,475.11,469.18,471.63,471.63,9007400 +2006-01-10,464.42,470.25,462.04,469.76,469.76,9097100 +2006-01-09,466.41,473.4,460.94,466.9,466.9,12791900 +2006-01-06,456.87,470.5,453.24,465.66,465.66,17756900 +2006-01-05,446,451.55,441.5,451.24,451.24,10808300 +2006-01-04,443.9,448.96,439.75,445.24,445.24,15286400 +2006-01-03,422.52,435.67,418.22,435.23,435.23,13121200 +2005-12-30,417.27,418.21,413.74,414.86,414.86,7587100 +2005-12-29,427.98,428.73,419.17,420.15,420.15,6945800 +2005-12-28,424.34,427.78,421.26,426.69,426.69,7117900 +2005-12-27,431.86,431.86,422.76,424.64,424.64,6702800 +2005-12-23,432.15,432.5,428.78,430.93,430.93,4595100 +2005-12-22,431.77,432.86,425.93,432.04,432.04,7546600 +2005-12-21,433.55,436.86,420.71,426.33,426.33,11221900 +2005-12-20,427.86,432.2,424.67,429.74,429.74,10084700 +2005-12-19,432.2,446.21,420.11,424.6,424.6,21936800 +2005-12-16,425.34,432.5,422.75,430.15,430.15,16330500 +2005-12-15,419.11,423.14,416.5,422.55,422.55,6045800 +2005-12-14,417.04,419.73,415.49,418.96,418.96,6630400 +2005-12-13,412.5,418,411.64,417.49,417.49,8157000 +2005-12-12,414.63,415.21,409.95,412.61,412.61,6950100 +2005-12-09,415,415.78,408.56,409.2,409.2,7643400 +2005-12-08,405.3,410.65,402.64,410.65,410.65,8910100 +2005-12-07,406.16,406.7,399.01,404.22,404.22,11665900 +2005-12-06,408.7,416.41,401.7,404.54,404.54,15114700 +2005-12-05,417,417.5,404.28,405.85,405.85,10289400 +2005-12-02,416.94,419.53,413.86,417.7,417.7,7543500 +2005-12-01,409.2,415.44,408.29,414.09,414.09,9744900 +2005-11-30,404.26,408.45,395.56,404.91,404.91,15596600 +2005-11-29,424.46,426.4,402.14,403.54,403.54,21495800 +2005-11-28,429.82,431.24,422.44,423.48,423.48,11008400 +2005-11-25,425.78,428.75,425.3,428.62,428.62,4840100 +2005-11-23,417.04,424.72,415.78,422.86,422.86,10085000 +2005-11-22,408.65,417.31,406.23,416.47,416.47,9596000 +2005-11-21,399.17,409.98,393.49,409.36,409.36,10335100 +2005-11-18,403.49,404.5,399.85,400.21,400.21,7025700 +2005-11-17,401.8,403.81,399.53,403.45,403.45,9212200 +2005-11-16,396.2,398.85,394.11,398.15,398.15,8695200 +2005-11-15,394.38,397,390.95,392.8,392.8,8624900 +2005-11-14,392.12,398.22,391.53,396.97,396.97,7807900 +2005-11-11,395.12,396.9,388.85,390.4,390.4,7063900 +2005-11-10,378.36,391.35,377.43,391.1,391.1,9128700 +2005-11-09,386.67,388.29,378.03,379.15,379.15,10466900 +2005-11-08,394.25,395.59,388.58,389.9,389.9,7897500 +2005-11-07,395.1,397.47,392.15,395.03,395.03,9591500 +2005-11-04,389.98,391.79,385.45,390.43,390.43,8824900 +2005-11-03,382.41,386.58,381.38,385.95,385.95,7448400 +2005-11-02,381.7,385,377.17,379.68,379.68,10565400 +2005-11-01,371.86,383.9,369.01,379.38,379.38,16356100 +2005-10-31,360.24,374.75,359.51,372.14,372.14,14342900 +2005-10-28,355.27,358.95,355.02,358.17,358.17,5903500 +2005-10-27,356.6,357.09,351.68,353.06,353.06,5134400 +2005-10-26,346.28,356,346.19,355.44,355.44,8907500 +2005-10-25,345.78,347.4,342.86,346.91,346.91,6878300 +2005-10-24,343.37,349.3,342.19,348.65,348.65,9431700 +2005-10-21,345.8,346.43,333,339.9,339.9,22892400 +2005-10-20,309.99,311.13,301.21,303.2,303.2,13911700 +2005-10-19,304,309.87,303.96,308.7,308.7,7010700 +2005-10-18,304.96,307.96,302.74,303.28,303.28,7077800 +2005-10-17,297.5,305.2,294.56,305,305,7566700 +2005-10-14,299.9,300.23,292.54,296.14,296.14,8519100 +2005-10-13,302,302,290.68,297.44,297.44,10567700 +2005-10-12,305.2,307.19,299,300.97,300.97,9306200 +2005-10-11,310.61,312.65,304.86,306.1,306.1,8542600 +2005-10-10,313.31,314.82,309.15,310.65,310.65,5572200 +2005-10-07,314.79,316.67,310.54,312.99,312.99,6770300 +2005-10-06,314.14,314.48,310.09,312.75,312.75,7993800 +2005-10-05,312.69,314.9,308,310.71,310.71,8328400 +2005-10-04,319.95,321.28,310.74,311,311,9144300 +2005-10-03,313.63,320.11,312.79,318.68,318.68,9160300 +2005-09-30,314.22,317.5,312.29,316.46,316.46,9151300 +2005-09-29,306.68,310.72,306.08,309.62,309.62,5613800 +2005-09-28,314.22,315.1,305.6,306,306,7997400 +2005-09-27,314.95,318.41,313.38,313.94,313.94,6873100 +2005-09-26,319.5,320.95,312.56,314.28,314.28,9894400 +2005-09-23,313,317.21,312.59,315.36,315.36,8483800 +2005-09-22,311.5,319.22,310.17,311.37,311.37,13006400 +2005-09-21,308.41,313.76,305.96,311.9,311.9,10119700 +2005-09-20,306.15,311.3,305.23,307.91,307.91,9351000 +2005-09-19,301,306,300.71,303.79,303.79,5761900 +2005-09-16,304.02,304.5,299.87,300.2,300.2,7579800 +2005-09-15,299.52,306.75,297.91,302.62,302.62,15466200 +2005-09-14,308.73,313.28,300.3,303,303,11275800 +2005-09-13,309,315.53,306.17,311.68,311.68,10299900 +2005-09-12,301.75,311.42,301,309.74,309.74,10386500 +2005-09-09,297.28,299.1,296.56,299.09,299.09,4390500 +2005-09-08,294.83,299.28,293.36,295.39,295.39,6613300 +2005-09-07,285.89,295.5,285.28,294.87,294.87,7499500 +2005-09-06,289,289.39,286.8,287.11,287.11,4212300 +2005-09-02,286.51,289.99,286.44,288.45,288.45,3434500 +2005-09-01,285.91,287.5,285,286.25,286.25,2742100 +2005-08-31,288.23,288.5,284.36,286,286,5034000 +2005-08-30,287.39,289.51,285.88,287.27,287.27,4792000 +2005-08-29,282.24,289.12,282.24,288.45,288.45,5903000 +2005-08-26,283.48,285.02,282.66,283.58,283.58,3755300 +2005-08-25,282.55,284,279.97,282.59,282.59,4376600 +2005-08-24,277.57,284.75,276.45,282.57,282.57,8593100 +2005-08-23,276.16,279.74,274.12,279.58,279.58,5821700 +2005-08-22,281.24,281.47,273.35,274.01,274.01,6813000 +2005-08-19,280.99,281.45,279.62,280,280,5542900 +2005-08-18,275.91,280.5,275,279.99,279.99,11872800 +2005-08-17,285.51,286.57,284,285.1,285.1,3883300 +2005-08-16,284.88,287.79,283.34,285.65,285.65,7109200 +2005-08-15,289.8,292.77,283.77,284,284,8174700 +2005-08-12,283.36,290.2,281.64,289.72,289.72,6585900 +2005-08-11,285.89,286.58,280.62,284.05,284.05,7514900 +2005-08-10,291.3,292.33,284.88,285.68,285.68,6879000 +2005-08-09,291.96,292.68,288.51,291.57,291.57,5779300 +2005-08-08,293.6,295.65,290.49,291.25,291.25,4481800 +2005-08-05,297.5,298.51,291.31,292.35,292.35,5939700 +2005-08-04,295.55,299,295.25,297.73,297.73,5236500 +2005-08-03,298,299.72,295.6,297.3,297.3,5930600 +2005-08-02,291.6,299.52,291.12,299.19,299.19,7290200 +2005-08-01,288.12,292.5,288.1,291.61,291.61,5662400 +2005-07-29,292.14,292.84,286.99,287.76,287.76,8363300 +2005-07-28,297.41,297.41,293.28,293.5,293.5,5925600 +2005-07-27,297.74,298.23,292.4,296.93,296.93,7217900 +2005-07-26,295.01,298,292.09,296.09,296.09,9816900 +2005-07-25,302.39,303.29,294.96,295.85,295.85,9658800 +2005-07-22,306.37,309.25,296.33,302.4,302.4,23386800 +2005-07-21,314.05,317.8,311.21,313.94,313.94,19789400 +2005-07-20,305.57,312.61,301.8,312,312,14310400 +2005-07-19,302.1,310.35,301.8,309.9,309.9,12621400 +2005-07-18,300,301.9,297.75,299.54,299.54,6207800 +2005-07-15,301.24,303.4,299.78,301.19,301.19,8438400 +2005-07-14,305.34,306.75,300.07,300.89,300.89,10667700 +2005-07-13,292.51,299.24,292.1,298.86,298.86,11437900 +2005-07-12,293.39,294.4,290.93,291.78,291.78,5864900 +2005-07-11,296.4,296.6,291.02,293.35,293.35,8390300 +2005-07-08,296.25,297.5,294.05,296.23,296.23,7457600 +2005-07-07,289.39,295.8,288.51,295.54,295.54,10672100 +2005-07-06,297.3,297.6,291.38,291.52,291.52,8000300 +2005-07-05,292.1,295.98,290.23,295.71,295.71,7494000 +2005-07-01,295.04,296.24,289.22,291.25,291.25,9227600 +2005-06-30,294.34,298.93,291.04,294.15,294.15,15094400 +2005-06-29,302.5,304.38,292.15,292.72,292.72,18298700 +2005-06-28,306.28,309.25,302,302,302,19036500 +2005-06-27,298.9,304.47,293.86,304.1,304.1,17802900 +2005-06-24,290.9,298,289.58,297.25,297.25,17771200 +2005-06-23,288,294.81,286.5,289.71,289.71,14056400 +2005-06-22,289.67,292.32,288.67,289.3,289.3,10474000 +2005-06-21,288.07,290.3,284.97,287.84,287.84,15132300 +2005-06-20,276.09,287.67,271.73,286.7,286.7,21024700 +2005-06-17,279,280.3,275.9,280.3,280.3,10434400 +2005-06-16,274.26,278.3,273.07,277.44,277.44,12462400 +2005-06-15,275,277.3,267.43,274.8,274.8,20883100 +2005-06-14,278.59,281.24,277.75,278.35,278.35,10091900 +2005-06-13,279.82,284.19,276.52,282.75,282.75,12803200 +2005-06-10,286.99,287.28,280.02,282.5,282.5,12696600 +2005-06-09,284.72,288.5,280.56,286.31,286.31,16441100 +2005-06-08,292.85,293.19,278,279.56,279.56,25700900 +2005-06-07,297.1,299.59,290.3,293.12,293.12,24323000 +2005-06-06,282.39,293.75,281.83,290.94,290.94,22525900 +2005-06-03,286.79,289.3,277.41,280.26,280.26,18782300 +2005-06-02,288.73,289.78,284.6,287.9,287.9,17974100 +2005-06-01,283.2,292.89,282.02,288,288,35191700 +2005-05-31,269.43,278.4,269.37,277.27,277.27,22236800 +2005-05-27,260.46,266.05,259.25,266,266,12184100 +2005-05-26,260.96,263.76,258.3,259.2,259.2,13546600 +2005-05-25,252.73,260.98,250.63,260.81,260.81,18057900 +2005-05-24,256.96,265.44,253.5,256,256,29043100 +2005-05-23,243.16,258.1,242.71,255.45,255.45,21388300 +2005-05-20,241.21,241.67,239.65,241.61,241.61,8163500 +2005-05-19,240.34,241.17,238.27,239.18,239.18,9716500 +2005-05-18,233.61,239.97,233.52,239.16,239.16,12312000 +2005-05-17,230.56,233.45,230.2,233.13,233.13,7808900 +2005-05-16,229.68,231.62,228.57,231.05,231.05,5681400 +2005-05-13,229.18,231.09,227.32,229.24,229.24,7415500 +2005-05-12,230.81,232.23,228.2,228.72,228.72,8948200 +2005-05-11,228.97,231.98,227.93,231.29,231.29,11478800 +2005-05-10,225.47,227.8,224.72,227.8,227.8,6345800 +2005-05-09,228,228.5,225.43,226.02,226.02,5536800 +2005-05-06,228.4,229.25,226.47,228.02,228.02,6763900 +2005-05-05,228.62,228.62,225.88,226.98,226.98,7509600 +2005-05-04,227.23,229.88,227,228.5,228.5,12083500 +2005-05-03,221.85,228.15,221.32,226.19,226.19,17780200 +2005-05-02,222.05,223.7,220.21,222.29,222.29,9767400 +2005-04-29,221.91,222.25,217.82,220,220,9170200 +2005-04-28,219.5,222.08,217.71,219.45,219.45,8682800 +2005-04-27,217.99,220.85,216.74,219.78,219.78,10264800 +2005-04-26,220.22,222,218.29,218.75,218.75,17272000 +2005-04-25,217.82,224.74,217.52,223.53,223.53,19840000 +2005-04-22,222.9,224,214.26,215.81,215.81,33205100 +2005-04-21,200.42,205,199.32,204.22,204.22,17751900 +2005-04-20,198.58,200.5,195.91,198.1,198.1,15451500 +2005-04-19,189.33,192,188.03,191.4,191.4,8430000 +2005-04-18,184.58,187.88,183.49,186.97,186.97,6550300 +2005-04-15,190.1,190.34,184.66,185,185,11577400 +2005-04-14,193.27,194.36,190.1,191.45,191.45,6152700 +2005-04-13,193.47,194.32,189.73,192.93,192.93,6555800 +2005-04-12,193,194.42,189.41,193.96,193.96,7319600 +2005-04-11,193.09,194.8,192.32,193.23,193.23,5410500 +2005-04-08,193.69,195.1,191.45,192.05,192.05,5116600 +2005-04-07,188.78,194.62,188.64,193.76,193.76,9692200 +2005-04-06,189.24,189.65,187.58,189.22,189.22,5252600 +2005-04-05,187.73,190.26,187.57,188.57,188.57,8736700 +2005-04-04,179.95,185.32,179.84,185.29,185.29,8076400 +2005-04-01,181.76,182.95,179.99,180.04,180.04,6182000 +2005-03-31,177.95,181.39,177.64,180.51,180.51,6768600 +2005-03-30,180.64,181.45,179.6,180.45,180.45,6236100 +2005-03-29,181.05,183.28,178.07,179.57,179.57,6473000 +2005-03-28,181.68,184.8,180.95,181.42,181.42,8738000 +2005-03-24,180.7,180.86,179.2,179.25,179.25,3705200 +2005-03-23,177.97,180.24,177.97,178.98,178.98,4845000 +2005-03-22,181.18,181.94,177.85,178.6,178.6,5631700 +2005-03-21,179.27,182.17,177.25,180.88,180.88,7483700 +2005-03-18,178.81,180.4,178.31,180.04,180.04,7090000 +2005-03-17,177.13,179.64,175.8,179.29,179.29,8260600 +2005-03-16,176.7,178.61,175.01,175.6,175.6,7106300 +2005-03-15,175.3,180,174.21,178.61,178.61,10422100 +2005-03-14,178.33,178.4,172.57,174.99,174.99,11146600 +2005-03-11,180.44,180.95,177.15,177.8,177.8,8028300 +2005-03-10,181.01,181.2,177.4,179.98,179.98,10960500 +2005-03-09,184.21,184.65,180.16,181.35,181.35,11360400 +2005-03-08,189.1,189.85,184.97,185.2,185.2,8046100 +2005-03-07,187.78,189.6,187.03,188.81,188.81,8667400 +2005-03-04,186.7,187.25,185.07,185.9,185.9,6774100 +2005-03-03,186.13,187.75,184.31,187.01,187.01,7608600 +2005-03-02,185.95,187.67,184.36,185.18,185.18,7285500 +2005-03-01,189.29,189.75,182,186.06,186.06,9311200 +2005-02-28,186,189.87,185.85,187.99,187.99,7818400 +2005-02-25,189.15,189.92,185.51,185.87,185.87,9973500 +2005-02-24,183.37,189.85,182.23,188.89,188.89,25814300 +2005-02-23,193.3,194.48,188.66,193.95,193.95,15586000 +2005-02-22,196.5,198.9,190.39,191.37,191.37,13483700 +2005-02-18,198.51,198.84,196.66,197.95,197.95,8485900 +2005-02-17,197.83,199.75,196.81,197.9,197.9,10414400 +2005-02-16,194.7,199.33,194.3,198.41,198.41,16532300 +2005-02-15,193.6,199.84,193.08,195.23,195.23,25782800 +2005-02-14,182.85,193.08,181,192.99,192.99,38562200 +2005-02-11,186.66,192.32,186.07,187.4,187.4,13116000 +2005-02-10,191.97,192.21,185.25,187.98,187.98,18982700 +2005-02-09,200.76,201.6,189.46,191.58,191.58,17171500 +2005-02-08,196.96,200.02,194.53,198.64,198.64,11480000 +2005-02-07,205.26,206.4,195.51,196.03,196.03,12960400 +2005-02-04,206.47,207.75,202.6,204.36,204.36,14819300 +2005-02-03,205.99,213.37,205.81,210.86,210.86,12988100 +2005-02-02,215.55,216.8,203.66,205.96,205.96,32799300 +2005-02-01,194.38,196.66,190.63,191.9,191.9,18839000 +2005-01-31,193.69,196.36,191.72,195.62,195.62,9596700 +2005-01-28,190.02,194.7,186.34,190.34,190.34,12208200 +2005-01-27,188.76,188.86,185.2,188.08,188.08,6627400 +2005-01-26,179.27,189.41,179.15,189.24,189.24,12307900 +2005-01-25,181.94,182.24,176.29,177.12,177.12,10659200 +2005-01-24,188.69,189.33,180.32,180.72,180.72,14022700 +2005-01-21,194.54,195.36,188.12,188.28,188.28,9258400 +2005-01-20,192.5,196.25,192,193.92,193.92,9001600 +2005-01-19,204.65,205.3,196.71,197.3,197.3,11257700 +2005-01-18,200.97,205.02,198.66,203.9,203.9,13172600 +2005-01-14,196,200.01,194.13,199.97,199.97,9640300 +2005-01-13,195.38,197.39,194.05,195.33,195.33,6849400 +2005-01-12,194.33,195.93,190.5,195.38,195.38,8177800 +2005-01-11,195.62,197.71,193.18,193.54,193.54,6958700 +2005-01-10,194.5,198.1,191.83,195.06,195.06,7539600 +2005-01-07,190.64,194.25,188.78,193.85,193.85,9662900 +2005-01-06,195.08,195.9,187.72,188.55,188.55,10387100 +2005-01-05,193.45,196.9,192.23,193.51,193.51,8236600 +2005-01-04,201.4,202.93,193.48,194.5,194.5,13755900 +2005-01-03,197.4,203.64,195.46,202.71,202.71,15844200 +2004-12-31,199.23,199.88,192.56,192.79,192.79,7668500 +2004-12-30,192.97,198.23,191.85,197.6,197.6,5904300 +2004-12-29,191.78,193.52,191.78,192.9,192.9,2678100 +2004-12-28,192.11,193.55,191.01,192.76,192.76,4145800 +2004-12-27,189.15,193.3,189.1,191.91,191.91,6104100 +2004-12-23,187.45,188.6,186,187.9,187.9,3614600 +2004-12-22,183.9,186.85,183.01,186.3,186.3,3907000 +2004-12-21,186.31,187.88,183.4,183.75,183.75,5516300 +2004-12-20,182,188.46,181.87,185.02,185.02,9834500 +2004-12-17,176.76,180.5,176.55,180.08,180.08,7386200 +2004-12-16,176.95,180.49,175.95,176.47,176.47,8572800 +2004-12-15,177.99,180.69,176.66,179.78,179.78,11471000 +2004-12-14,171,178.82,169.6,178.69,178.69,11088400 +2004-12-13,172.17,173.18,169.45,170.45,170.45,4818600 +2004-12-10,173.43,174.88,171.29,171.65,171.65,4317200 +2004-12-09,170.25,173.5,168.47,173.43,173.43,7654000 +2004-12-08,170.35,173.68,168.73,169.98,169.98,7541800 +2004-12-07,176,176.2,170.55,171.43,171.43,6870900 +2004-12-06,179.13,180.7,176.02,176.29,176.29,6254000 +2004-12-03,179.95,181.06,177.6,180.4,180.4,5869200 +2004-12-02,179.9,181.51,178.55,179.4,179.4,6260900 +2004-12-01,181.95,182.5,179.55,179.96,179.96,7864100 +2004-11-30,180.71,183,180.25,181.98,181.98,7700000 +2004-11-29,180.36,182.95,177.51,181.05,181.05,10666600 +2004-11-26,175.8,180.03,175.32,179.39,179.39,6480100 +2004-11-24,174.82,177.21,172.51,174.76,174.76,15281000 +2004-11-23,167.97,170.83,166.5,167.52,167.52,12413300 +2004-11-22,164.47,169.5,161.31,165.1,165.1,12368200 +2004-11-19,169.1,169.98,166.52,169.4,169.4,8769300 +2004-11-18,170.29,174.42,165.73,167.54,167.54,16629600 +2004-11-17,169.02,177.5,169,172.5,172.5,18132900 +2004-11-16,177.5,179.47,170.83,172.54,172.54,20917400 +2004-11-15,180.45,188.32,178.75,184.87,184.87,11901500 +2004-11-12,185.23,189.8,177.4,182,182,16746100 +2004-11-11,169.13,183.75,167.57,183.02,183.02,14985500 +2004-11-10,170.67,172.52,166.33,167.86,167.86,10644000 +2004-11-09,174.1,175.2,165.27,168.7,168.7,11064200 +2004-11-08,170.93,175.44,169.4,172.55,172.55,11191800 +2004-11-05,181.98,182.3,168.55,169.35,169.35,19833100 +2004-11-04,188.44,190.4,183.35,184.7,184.7,14409600 +2004-11-03,198.18,201.6,190.75,191.67,191.67,13888700 +2004-11-02,198.78,199.25,193.34,194.87,194.87,11346300 +2004-11-01,193.55,197.67,191.27,196.03,196.03,12224900 +2004-10-29,198.89,199.95,190.6,190.64,190.64,21162500 +2004-10-28,186.68,194.39,185.6,193.3,193.3,14846800 +2004-10-27,182.72,189.52,181.77,185.97,185.97,13356500 +2004-10-26,186.34,192.64,180,181.8,181.8,22307100 +2004-10-25,176.4,194.43,172.55,187.4,187.4,32764200 +2004-10-22,170.54,180.17,164.08,172.43,172.43,36891900 +2004-10-21,144.4,150.13,141.62,149.38,149.38,14589500 +2004-10-20,148.03,148.99,139.6,140.49,140.49,11372700 +2004-10-19,150.5,152.4,147.35,147.94,147.94,9064000 +2004-10-18,143.2,149.2,141.21,149.16,149.16,7025200 +2004-10-15,144.93,145.5,141.95,144.11,144.11,6604000 +2004-10-14,141.01,142.38,138.56,142,142,5226300 +2004-10-13,143.32,143.55,140.08,140.9,140.9,9893000 +2004-10-12,134.44,137.61,133.4,137.4,137.4,5838600 +2004-10-11,137,138.86,133.85,135.26,135.26,5241300 +2004-10-08,138.72,139.68,137.02,137.73,137.73,5540300 +2004-10-07,136.92,139.88,136.55,138.85,138.85,7064600 +2004-10-06,137.55,138.45,136,137.08,137.08,6697400 +2004-10-05,134.66,138.53,132.24,138.37,138.37,7494100 +2004-10-04,135.25,136.87,134.03,135.06,135.06,6517900 +2004-10-01,130.8,134.24,128.9,132.58,132.58,7570000 +2004-09-30,129.9,132.3,129,129.6,129.6,6885900 +2004-09-29,126.7,135.02,126.23,131.08,131.08,15273500 +2004-09-28,121.3,127.4,120.21,126.86,126.86,8473000 +2004-09-27,119.56,120.88,117.8,118.26,118.26,3536600 +2004-09-24,120.94,124.1,119.76,119.83,119.83,4566300 +2004-09-23,118.84,122.63,117.02,120.82,120.82,4272100 +2004-09-22,117.4,119.67,116.81,118.38,118.38,3794400 +2004-09-21,119.81,120.42,117.51,117.84,117.84,3618000 +2004-09-20,116.95,121.6,116.77,119.36,119.36,5319700 +2004-09-17,114.42,117.49,113.55,117.49,117.49,4741000 +2004-09-16,112.34,115.8,111.65,113.97,113.97,4637800 +2004-09-15,110.56,114.23,110.2,112,112,5361900 +2004-09-14,107.45,112,106.79,111.49,111.49,5419900 +2004-09-13,106.63,108.41,106.46,107.5,107.5,3926000 +2004-09-10,101.6,106.56,101.3,105.33,105.33,4353800 +2004-09-09,102.53,102.71,101,102.31,102.31,2032900 +2004-09-08,100.74,103.03,100.5,102.3,102.3,2495300 +2004-09-07,101.01,102,99.61,101.58,101.58,2926700 +2004-09-03,100.95,101.74,99.32,100.01,100.01,2578800 +2004-09-02,99.19,102.37,98.94,101.51,101.51,7566900 +2004-09-01,102.7,102.97,99.67,100.25,100.25,4573700 +2004-08-31,102.3,103.71,102.16,102.37,102.37,2461400 +2004-08-30,105.28,105.49,102.01,102.01,102.01,2601000 +2004-08-27,108.1,108.62,105.69,106.15,106.15,3109000 +2004-08-26,104.95,107.95,104.66,107.91,107.91,3551000 +2004-08-25,104.96,108,103.88,106,106,4598900 +2004-08-24,111.24,111.6,103.57,104.87,104.87,7631300 +2004-08-23,110.75,113.48,109.05,109.4,109.4,9137200 +2004-08-20,101.01,109.08,100.5,108.31,108.31,11428600 +2004-08-19,100,104.06,95.96,100.34,100.34,22351900 \ No newline at end of file diff --git a/2nd_copy/_ref/steps.ods b/2nd_copy/_ref/steps.ods new file mode 100644 index 0000000..537284d Binary files /dev/null and b/2nd_copy/_ref/steps.ods differ diff --git a/2nd_copy/_ref/test.csv b/2nd_copy/_ref/test.csv new file mode 100644 index 0000000..c4cc6e6 --- /dev/null +++ b/2nd_copy/_ref/test.csv @@ -0,0 +1,15 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2008-07-04,460,463.24,449.4,450.26,450.26,4848500 +2008-07-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-06-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-06-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-05-08,452.02,452.94,417.55,419.95,419.95,9017900 +2008-05-05,445.49,452.46,440.08,444.25,444.25,4534300 +2008-04-04,460,463.24,449.4,450.26,450.26,4848500 +2008-04-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-03-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-03-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-02-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-02-27,473.73,474.83,464.84,468.58,468.58,4387100 +2008-01-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-01-27,473.73,474.83,464.84,468.58,468.58,4387100 \ No newline at end of file diff --git a/2nd_copy/build.sh b/2nd_copy/build.sh new file mode 100644 index 0000000..8e8be38 --- /dev/null +++ b/2nd_copy/build.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +rm -rf _temp/* +rm -rf delivery2.zip + +mkdir -p _temp + +set -ex + +cp src/main.py _temp/XXXXXXXX_project.py + +pushd _temp + 7za a -tzip ../delivery2.zip * +popd + +rm -rf _temp \ No newline at end of file diff --git a/2nd_copy/src/Pipfile b/2nd_copy/src/Pipfile new file mode 100644 index 0000000..0757494 --- /dev/null +++ b/2nd_copy/src/Pipfile @@ -0,0 +1,11 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] + +[dev-packages] + +[requires] +python_version = "3.11" diff --git a/2nd_copy/src/main.py b/2nd_copy/src/main.py new file mode 100644 index 0000000..38916f8 --- /dev/null +++ b/2nd_copy/src/main.py @@ -0,0 +1,262 @@ +# Objective: +# This scripts aims to analyze the historical prices of a stock +import os +import sys +import csv + +# define error constant +CSV_FILE_NOT_FOUND='csv_file_not_found' + +# column assignment by CSV definition +[ C_DATE, + C_OPEN, + C_HIGH, + C_LOW, + C_CLOSE, + C_ADJ_CLOSE, + C_VOLUME, + C_MONTH_AVG_PRICE, + C_EMA + ] = list(range(0,8+1)) + +# NOTE: get_data_list(csv_file_name) +# NOTE: This function has one parameter, namely csv_file_name. +# NOTE: When the function is called, you need to pass along a CSV file name which is used inside the function to open and read the CSV +# NOTE: file. +# NOTE: After reading each row, it will be split into a list. The list will then be appended into a main +# NOTE: list (a list of lists), namely data_list. The data_list will be returned at the end of the +# NOTE: function. + +# NOTE: file tested found as protected by outer try except structure +def clean_data(data_list): + """clean and bloat data""" + + out_list = [] + for data in sorted(data_list): + out_list.append([ + data[C_DATE], + float(data[C_OPEN]), + float(data[C_HIGH]), + float(data[C_LOW]), + float(data[C_CLOSE]), + float(data[C_ADJ_CLOSE]), + float(data[C_VOLUME]), + ]) + return out_list + +def get_data_list(csv_file_name): + '''parse csv file, bloat it into list object''' + + data_list = [] + with open(csv_file_name, newline='') as f_csv: + data_list = list(csv.reader(f_csv, delimiter=',', quotechar='"')) + + # NOTE: skip the very first row as that is names + # NOTE: bloat the column accordingly + return clean_data(data_list[1:]) + +# NOTE: get_monthly_averages(data_list) +# NOTE: This function has one parameter, namely data_list. You need to pass the data_list +# NOTE: generated by the get_data_list() function as the argument to this function and then +# NOTE: calculate the monthly average prices of the stock. The average monthly prices are calculated in +# NOTE: the following way. +# NOTE: +# NOTE: 1. Suppose the volume and adjusted closing price of a trading day are V1 and C1, respectively. +# NOTE: 2. The total sale of that day equals V1 x C1. +# NOTE: 3. Now, suppose the volume and adjusted closing price of another trading day are V2 and C2, respectively. +# NOTE: 4. The average of these two trading days is the sum of the total sales divided by the total volume: +# NOTE: +# NOTE: Average price = (V1 x C1 + V2 x C2) / (V1 + V2) +# NOTE: +# NOTE: To average a whole month, you need to +# NOTE: - add up the total sales (V1 x C1 + V2 x C2 + ... + Vn x Cn) for each day and +# NOTE: - divide it by the sum of all volumes (V1 + V2 + ... + Vn) where n is the number of trading days in the month. +# NOTE: A tuple with 2 items, including the date (year and month only) and the average for that month, +# NOTE: will be generated for each month. The tuple for each month will be appended to a main list, +# NOTE: namely monthly_averages_list. The monthly_averages_list will be returned at the end of the function. + +def get_available_month(data_list): + '''get the unique month from the list + input: + data_list + ''' + return sorted(set([data[0][0:7] for data in data_list])) + +def get_monthly_averages(data_list): + '''get the average price by month + input: + data_list + ''' + month_in_list = get_available_month(data_list) + month_average_price = {} + monthly_averages_list = data_list + + # get total volume by month + for month in month_in_list: + filtered_month_transaction = list(filter(lambda row: row[C_DATE][0:7] == month, monthly_averages_list)) + + # NOTE: (V1 x C1 + V2 x C2 ...) + sum_total_sale_by_month = sum(map(lambda row: row[C_VOLUME] * row[C_ADJ_CLOSE], filtered_month_transaction)) + + # NOTE: (V1 + V2 ...) + sum_volume_by_month = sum(map(lambda t: t[C_VOLUME], filtered_month_transaction)) + + # NOTE: Average price = (V1 x C1 + V2 x C2 ...) / (V1 + V2 ... ) + month_average_price[month] = sum_total_sale_by_month/sum_volume_by_month + + # NOTE: append to main list -> C_MONTH_AVG_PRICE + for data in monthly_averages_list: + data.append(month_average_price[data[C_DATE][0:7]]) + + return monthly_averages_list + +# NOTE: get_moving_averages(monthly_averages_list) +# NOTE: This function has one parameter, namely monthly_averages_list. You need to pass the +# NOTE: monthly_averages_list generated by get_monthly_averages() as the argument +# NOTE: to this function and then calculate the 5-month exponential moving average (EMA) stock prices. +# NOTE: In general, the EMA for a particular month can be calculated by the following formula: +# NOTE: +# NOTE: EMA = (Monthly average price – previous month’s EMA) x smoothing constant + previous month’s EMA +# NOTE: +# NOTE: where +# NOTE: +# NOTE: smoothing constant = 2 / (number of time periods in months + 1) +# NOTE: +# NOTE: Initial SMA = 20-period sum / 20 +# NOTE: Multiplier = (2 / (Time periods + 1) ) = (2 / (20 + 1) ) = 0.0952(9.52%) +# NOTE: EMA = {Close – EMA(previous day)} x multiplier + EMA(previous day). +def get_monthly_average(data_list, month_wanted): + ''' + get monthly average from the list + input: + data_list: data_list + month_wanted: YYYY-MM + ''' + return list(filter(lambda d: d[C_DATE][0:7] == month_wanted, data_list) )[0][C_MONTH_AVG_PRICE] + + +def get_SMA(data_list, month_to_get_SMA): + '''calculate SMA from the beginning(oldest) of the list + input: + data_list: data_list + month_to_get_SMA : number of month to initialize the SMA (i.e. 5) + ''' + sum_of_months = 0 + + for month in month_to_get_SMA: + sum_of_months = sum_of_months + get_monthly_average(data_list, month) + + return sum_of_months / len(month_to_get_SMA) + +def get_extreme_EMA(ema_list, max_min= 'min', skip_month=0): + '''get max/min EMA from the list + input: + ema_list: month list with ema + max_min: max / min selector (default: min) + skip_month: month to skip as initialized as SMA (i.e. the first 5 month) + ''' + if (max_min == 'max'): + return max(map(lambda r: r[2], ema_list[skip_month:])) + + return min(map(lambda r: r[2], ema_list[skip_month:])) + +def get_month_by_EMA(ema_list, ema_value): + '''get months(value) specified by the EMA value wanted + input: + ema_list: month list with ema + ema_value: ema value to select the month (i.e. max EMA) + ''' + return list(map(lambda r: r[0], filter(lambda x: x[2] == ema_value, ema_list))) + +def get_output_content(max_ema, min_ema, max_ema_months, min_ema_months, report_name=""): + '''get the output content, return with a formatted string + input: + max_ema: max ema to report + min_ema: min ema to report + max_ema_months: month(s) to report with max ema + min_ema_months: month(s) to report with min ema + ''' + # reformat to MM-YYYY before out to file + reformat_max_ema_months = list(map(lambda m: m.split('-')[1]+'-'+m.split('-')[0] , max_ema_months)) + reformat_min_ema_months = list(map(lambda m: m.split('-')[1]+'-'+m.split('-')[0] , min_ema_months)) + + return ''' +# The best month for {report_name}: +# {best_ema_months}, {best_EMA} + +# The worst month for {report_name}: +# {worst_ema_months}, {worst_EMA} + '''.format( + best_ema_months=','.join(reformat_max_ema_months), + best_EMA=round(max_ema, 2), + worst_ema_months=','.join(reformat_min_ema_months), + worst_EMA=round(min_ema, 2), + report_name=report_name).strip() + + +def get_moving_averages(monthly_averages_list): + '''get moving averages + input: + monthly_averages_list + ''' + month_available = get_available_month(monthly_averages_list) + # NOTE: initialize first 0 to 4 SMA + monthly_averages_list_w_EMA = [[c, get_monthly_average(monthly_averages_list, c)] for c in month_available] + initial_SMA = sum(map(lambda x: x[1], monthly_averages_list_w_EMA[0:5]))/5 + + smoothing_constant = 2 / (5 + 1) + + for i in range(0,len(monthly_averages_list_w_EMA)): + if (i < 5): + # first 5 month were given by SMA + monthly_averages_list_w_EMA[i].append( initial_SMA) + + else: + month_average_this_month = monthly_averages_list_w_EMA[i][1] + EMA_last_month = monthly_averages_list_w_EMA[i-1][2] + EMA_this_month = (month_average_this_month - EMA_last_month) * smoothing_constant + EMA_last_month + + monthly_averages_list_w_EMA[i].append( EMA_this_month ) + + return monthly_averages_list_w_EMA + +# get input from user +csv_filepath = input("Please input a csv filename: ") + +try: + # NOTE: get csv file from user + csv_filename = csv_filepath + txt_filename = csv_filename.split('.csv')[0]+'_output.txt' + report_name = os.path.basename(csv_filename).replace('.csv','') + + # NOTE: process file + data_list = get_data_list(csv_filename) + monthly_average_list = get_monthly_averages(data_list) + ema_list = get_moving_averages(monthly_average_list) + + # NOTE: output txt file + max_ema = get_extreme_EMA(ema_list,'max', 5) + min_ema = get_extreme_EMA(ema_list, 'min',5) + best_ema_months = get_month_by_EMA(ema_list, max_ema) + worst_ema_months = get_month_by_EMA(ema_list, min_ema) + + output_string = get_output_content(max_ema, min_ema, best_ema_months, worst_ema_months, report_name) + + with open(txt_filename, 'w+') as f_output: + f_output.truncate(0) + f_output.writelines(output_string) + + print('output wrote '+txt_filename) + print('done !') + +except IsADirectoryError as e: + # NOTE: if input is a directory, drop here + print('sorry the path is a directory') + +except FileNotFoundError as e: + # NOTE: if csv file not found, drop here + print('sorry cannot find the file wanted') + +except Exception as e: + # # cast outside if exception definition not found + raise e diff --git a/2nd_copy/src/test.sh b/2nd_copy/src/test.sh new file mode 100644 index 0000000..15c7c30 --- /dev/null +++ b/2nd_copy/src/test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +clear +python3 ./main.py \ No newline at end of file diff --git a/gitUpdate.bat b/gitUpdate.bat new file mode 100644 index 0000000..9f8ef20 --- /dev/null +++ b/gitUpdate.bat @@ -0,0 +1,7 @@ +git status . + +@pause + +git add . +git commit -m"update hyhl_1022," +start git push \ No newline at end of file diff --git a/jupyter/jupyter-helloworld/1st_copy.ipynb b/jupyter/jupyter-helloworld/1st_copy.ipynb new file mode 100644 index 0000000..bc5be53 --- /dev/null +++ b/jupyter/jupyter-helloworld/1st_copy.ipynb @@ -0,0 +1,372 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "83041d33", + "metadata": {}, + "outputs": [], + "source": [ + "%rm -rf google_output.txt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9b24b4df", + "metadata": {}, + "outputs": [], + "source": [ + "import os,sys, csv" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c2b90953", + "metadata": {}, + "outputs": [], + "source": [ + "# column from csv file\n", + "# COL_DATE: the day of trading\n", + "# COL_OPEN: the stock price at the beginning of the trading day\n", + "# COL_HIGH: the highest price the stock achieved on the trading day\n", + "# COL_LOW: the lowest price the stock achieved on the trading day\n", + "# COL_CLOSE: the stock price at the end of the trading day\n", + "# COL_ADJ_Close: the adjusted closing price of the trading day (reflecting the stock’s value after accounting for any corporate actions like dividends, stock splits and new stock offerings)\n", + "# COL_VOLUME: the total number of shares were traded on the trading day\n", + "COL_DATE=0\n", + "COL_OPEN=1\n", + "COL_HIGH=2\n", + "COL_LOW=3\n", + "COL_CLOSE=4\n", + "COL_ADJ_CLOSE=5\n", + "COL_VOLUME=6\n", + "\n", + "# append at middle stage\n", + "COL_TOTAL_SALE_OF_DAY=7\n", + "COL_MONTH_ONLY=8\n", + "COL_EMA=9\n", + "\n", + "# monthly_averages_list\n", + "COL_MONTHLY_AVERAGE_PRICE=1\n", + "COL_EMA=2" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "09a9417f", + "metadata": {}, + "outputs": [], + "source": [ + "# get_data_list(csv_file_name)\n", + "# This function has one parameter, namely csv_file_name. \n", + "# When the function is called, you need to pass along a CSV file name which is used inside the function to open and read the CSV\n", + "# file. \n", + "# After reading each row, it will be split into a list. The list will then be appended into a main\n", + "# list (a list of lists), namely data_list. The data_list will be returned at the end of the\n", + "# function.\n", + "def get_data_list(csv_file_name):\n", + " '''read data list from csv file'''\n", + " data_list = []\n", + " try:\n", + " with open(csv_file_name, newline='') as csvfile:\n", + " temp = []\n", + " temp = csv.reader(csvfile, delimiter=',', quotechar='\"')\n", + " data_list = list(temp)\n", + " \n", + " return data_list\n", + " except Exception as e:\n", + " print('error during reading csv file ')\n", + " print('exitting...')\n", + " sys.exit()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "cd616e6e", + "metadata": {}, + "outputs": [], + "source": [ + "# get_monthly_averages(data_list)\n", + "# This function has one parameter, namely data_list. You need to pass the data_list\n", + "# generated by the get_data_list() function as the argument to this function and then\n", + "# calculate the monthly average prices of the stock. The average monthly prices are calculated in\n", + "# the following way. \n", + "# \n", + "# 1. Suppose the volume and adjusted closing price of a trading day are V1 and C1, respectively. \n", + "# 2. The total sale of that day equals V1 x C1. \n", + "# 3. Now, suppose the volume and adjusted closing price of another trading day are V2 and C2, respectively. \n", + "# 4. The average of these two trading days is the sum of the total sales divided by the total volume:\n", + "# \n", + "# Average price = (V1 x C1 + V2 x C2) / (V1 + V2)\n", + "# \n", + "# To average a whole month, you need to \n", + "# - add up the total sales (V1 x C1 + V2 x C2 + ... + Vn x Cn) for each day and \n", + "# - divide it by the sum of all volumes (V1 + V2 + ... + Vn) where n is the number of trading days in the month.\n", + "# A tuple with 2 items, including the date (year and month only) and the average for that month,\n", + "# will be generated for each month. The tuple for each month will be appended to a main list,\n", + "# namely monthly_averages_list. The monthly_averages_list will be returned at the end of the function.\n", + "\n", + "def get_monthly_averages(data_list):\n", + " '''calculate the monthly average prices of the stock'''\n", + "\n", + " monthly_averages_list=[]\n", + " data_list_data_only = data_list[1:]\n", + " month_available = []\n", + " \n", + " # data cleaning\n", + " for i in range(len(data_list_data_only)):\n", + " # V1 x C1, calculate the total sale, append into column\n", + " data_list_data_only[i].append(float(data_list_data_only[i][COL_VOLUME]) * float(data_list_data_only[i][COL_ADJ_CLOSE]))\n", + "\n", + " # mark the row by YYYY-MM for easy monthly sum calculation, COL_MONTH_ONLY\n", + " data_list_data_only[i].append(data_list_data_only[i][COL_DATE][0:7])\n", + "\n", + " # get the month in the list YYYY-MM\n", + " month_available = set(list(map(lambda x: x[COL_MONTH_ONLY], data_list_data_only)))\n", + "\n", + " # literate the whole list, calculate the total_sale and total volume\n", + " # get the average sale by total_sale / total_volume\n", + " for month in sorted(month_available):\n", + " filtered_month = list(filter(lambda x: x[COL_MONTH_ONLY] == month, data_list_data_only))\n", + " total_sale = sum(list( map(lambda x: x[COL_TOTAL_SALE_OF_DAY], filtered_month)))\n", + " total_volume = sum(list( map(lambda x: float(x[COL_VOLUME]), filtered_month)))\n", + " monthly_averages_list.append([month, total_sale/total_volume])\n", + "\n", + " return list(monthly_averages_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "dfe29847", + "metadata": {}, + "outputs": [], + "source": [ + "# get_moving_averages(monthly_averages_list)\n", + "# This function has one parameter, namely monthly_averages_list. You need to pass the\n", + "# monthly_averages_list generated by get_monthly_averages() as the argument\n", + "# to this function and then calculate the 5-month exponential moving average (EMA) stock prices.\n", + "# In general, the EMA for a particular month can be calculated by the following formula:\n", + "# \n", + "# EMA = (Monthly average price – previous month’s EMA) x smoothing constant + previous month’s EMA\n", + "# \n", + "# where\n", + "# \n", + "# smoothing constant = 2 / (number of time periods in months + 1)\n", + "# \n", + "# Initial SMA = 20-period sum / 20\n", + "# Multiplier = (2 / (Time periods + 1) ) = (2 / (20 + 1) ) = 0.0952(9.52%)\n", + "# EMA = {Close – EMA(previous day)} x multiplier + EMA(previous day).\n", + "def get_moving_averages(monthly_averages_list):\n", + " '''\n", + " get moving averages from montyly_average_list\n", + " input:\n", + " [ [YYYY-MM, monthly average price],\n", + " [YYYY-MM, monthly average price],\n", + " ...]\n", + "\n", + " output: \n", + " [ [YYYY-MM, monthly average price, EMA],\n", + " [YYYY-MM, monthly average price, EMA],\n", + " ...]\n", + " '''\n", + "\n", + " # by ref, the first 5 month EMA were given by SMA\n", + " monthly_averages_list[0].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5)\n", + " monthly_averages_list[1].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5)\n", + " monthly_averages_list[2].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5)\n", + " monthly_averages_list[3].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5)\n", + " monthly_averages_list[4].append(sum(map(lambda x: x[1], monthly_averages_list[0:5]))/5)\n", + "\n", + " # smoothing constant = 2 / (number of time periods in months + 1)\n", + " smoothing_constant = 2 / (5 + 1)\n", + "\n", + " # main loop to calculate EMA, start from the 6th month available till the end of the list\n", + " for i in range(5, len(monthly_averages_list)):\n", + " previous_month_EMA = monthly_averages_list[i-1][2]\n", + " Monthly_average_price = monthly_averages_list[i][1]\n", + "\n", + " EMA = (Monthly_average_price - previous_month_EMA) * smoothing_constant + previous_month_EMA\n", + " monthly_averages_list[i].append(EMA)\n", + "\n", + " return monthly_averages_list\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c89cbae8", + "metadata": {}, + "outputs": [], + "source": [ + "def format_date_string(yyyy_mm):\n", + " '''rearrange date string from csv file YYYY-MM => MM-YYYY'''\n", + " [yyyy, mm] = yyyy_mm.split('-')\n", + " return '-'.join([mm, yyyy])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8d646beb", + "metadata": {}, + "outputs": [], + "source": [ + "def write_output_file(filename_to_write, monthly_averages_list_w_ema, report_name):\n", + " '''get output string from template and write to output file\n", + " input:\n", + " filename_to_write: txt file name with path to be written to\n", + " monthly_averages_list_w_ema: list provided with EMA\n", + " report_name: report name to be written to report\n", + " '''\n", + "\n", + " RESULT_TEMPLATE='''\n", + "# The best month for ^report_name^:\n", + "# ^best_month^, ^best_EMA^\n", + "\n", + "# The worst month for ^report_name^:\n", + "# ^worst_month^, ^worst_EMA^\n", + " '''.strip()\n", + "\n", + " # get the max EMA of the list\n", + " best_EMA = max(map(lambda x: x[2], monthly_averages_list_w_ema[5:]))\n", + " # get the month(s) by the EMA wanted\n", + " best_months = list(map(lambda x: format_date_string(x[0]), filter(lambda x: x[2] == best_EMA, monthly_averages_list_w_ema[5:])))\n", + "\n", + " # get the min(worst) EMA of the list\n", + " worst_EMA = min(map(lambda x: x[2], monthly_averages_list_w_ema[5:]))\n", + " # get the month(s) by the EMA wanted\n", + " worst_months = list(map(lambda x: format_date_string(x[0]), filter(lambda x: x[2] == worst_EMA, monthly_averages_list_w_ema[5:])))\n", + "\n", + " # assemble the output string\n", + " result_string = RESULT_TEMPLATE\n", + " result_string = result_string\\\n", + " .replace('^best_month^', ','.join(best_months))\\\n", + " .replace('^best_EMA^', str('%.2f' % best_EMA))\\\n", + " .replace('^worst_month^', ','.join(worst_months))\\\n", + " .replace('^worst_EMA^', str('%.2f' % worst_EMA)) \\\n", + " .replace('^report_name^', report_name) \n", + "\n", + " # write output file\n", + " with open(filename_to_write, 'w+') as file_write:\n", + " file_write.truncate(0)\n", + " file_write.writelines(result_string)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1917aaef", + "metadata": {}, + "outputs": [], + "source": [ + "def main():\n", + " # Main function starts here\n", + "\n", + " print('start')\n", + "\n", + " # gather csv file with path from user\n", + " input_filename = input(\"Please input a csv filename: \")\n", + " \n", + " csv_filename = os.path.basename(input_filename)\n", + " csv_path = os.path.dirname(input_filename)\n", + "\n", + " # transform to the output file path by csv file name got\n", + " txt_filename = csv_filename.replace('.csv','_output.txt')\n", + " if (csv_path !=''):\n", + " txt_filename = '/'.join([csv_path, txt_filename])\n", + " else:\n", + " txt_filename = '/'.join(['.', txt_filename])\n", + " \n", + " # grep the corp_name from the filename google.csv => google\n", + " corp_name = os.path.basename(input_filename).split('.')[0]\n", + "\n", + " # process the data_list by csv file as stateed in assignment\n", + " print(f'processing {csv_filename}')\n", + " csv_list=get_data_list(input_filename)\n", + " monthly_averages_list = get_monthly_averages(csv_list)\n", + " monthly_averages_list_w_EMA = get_moving_averages(monthly_averages_list)\n", + "\n", + " # write output file\n", + " write_output_file(txt_filename, monthly_averages_list_w_EMA, corp_name)\n", + " print('wrote to {file} done'.format(file = txt_filename))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7d3e814", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "start\n" + ] + } + ], + "source": [ + "if __name__ == \"__main__\":\n", + " main()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "325de646", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "%ls" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de467460", + "metadata": {}, + "outputs": [], + "source": [ + "%cat google_output.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41f834e6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter/jupyter-helloworld/Pipfile b/jupyter/jupyter-helloworld/Pipfile new file mode 100644 index 0000000..71b6bdf --- /dev/null +++ b/jupyter/jupyter-helloworld/Pipfile @@ -0,0 +1,21 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +jupyter = "*" +notebook = "*" +pandas = "*" +quandl = "*" +seaborn = "*" +sklearn = "*" +scikit-learn = "*" +pydot = "*" +bokeh = "*" +jupyter-bokeh = "*" + +[dev-packages] + +[requires] +python_version = "3" diff --git a/jupyter/jupyter-helloworld/Pipfile.lock b/jupyter/jupyter-helloworld/Pipfile.lock new file mode 100644 index 0000000..f6e59b4 --- /dev/null +++ b/jupyter/jupyter-helloworld/Pipfile.lock @@ -0,0 +1,1403 @@ +{ + "_meta": { + "hash": { + "sha256": "4866514ccefcd7eb6224f45534eb91ee2369291fe7c795a9346ca23888ed159e" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "anyio": { + "hashes": [ + "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", + "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" + ], + "markers": "python_full_version >= '3.6.2'", + "version": "==3.6.2" + }, + "argon2-cffi": { + "hashes": [ + "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80", + "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b" + ], + "markers": "python_version >= '3.6'", + "version": "==21.3.0" + }, + "argon2-cffi-bindings": { + "hashes": [ + "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670", + "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f", + "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583", + "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194", + "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c", + "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a", + "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082", + "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5", + "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f", + "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7", + "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d", + "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f", + "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae", + "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3", + "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86", + "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367", + "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d", + "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93", + "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb", + "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", + "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351" + ], + "markers": "python_version >= '3.6'", + "version": "==21.2.0" + }, + "asttokens": { + "hashes": [ + "sha256:1b28ed85e254b724439afc783d4bee767f780b936c3fe8b3275332f42cf5f561", + "sha256:4aa76401a151c8cc572d906aad7aea2a841780834a19d780f4321c0fe1b54635" + ], + "version": "==2.1.0" + }, + "attrs": { + "hashes": [ + "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", + "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" + ], + "markers": "python_version >= '3.5'", + "version": "==22.1.0" + }, + "backcall": { + "hashes": [ + "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", + "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" + ], + "version": "==0.2.0" + }, + "beautifulsoup4": { + "hashes": [ + "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30", + "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693" + ], + "markers": "python_full_version >= '3.6.0'", + "version": "==4.11.1" + }, + "bleach": { + "hashes": [ + "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a", + "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c" + ], + "markers": "python_version >= '3.7'", + "version": "==5.0.1" + }, + "bokeh": { + "hashes": [ + "sha256:37f6180a17f3dbf07c597f3a584cdd2bf660486d56a5c45b2b110682523c7512", + "sha256:fb537cf24f5a25a6739393f9906ddf8c913bfebc4cb120d342e8262889326f7d" + ], + "index": "pypi", + "version": "==3.0.2" + }, + "certifi": { + "hashes": [ + "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", + "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" + ], + "markers": "python_version >= '3.6'", + "version": "==2022.9.24" + }, + "cffi": { + "hashes": [ + "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", + "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", + "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", + "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", + "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", + "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", + "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", + "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", + "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", + "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", + "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", + "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", + "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", + "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", + "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", + "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", + "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", + "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", + "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", + "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", + "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", + "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", + "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", + "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", + "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", + "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", + "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", + "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", + "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", + "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", + "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", + "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", + "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", + "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", + "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", + "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", + "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", + "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", + "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", + "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", + "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", + "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", + "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", + "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", + "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", + "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", + "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", + "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", + "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", + "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", + "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", + "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", + "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", + "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", + "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", + "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", + "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", + "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", + "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", + "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", + "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", + "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", + "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", + "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" + ], + "version": "==1.15.1" + }, + "charset-normalizer": { + "hashes": [ + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" + ], + "markers": "python_full_version >= '3.6.0'", + "version": "==2.1.1" + }, + "contourpy": { + "hashes": [ + "sha256:0236875c5a0784215b49d00ebbe80c5b6b5d5244b3655a36dda88105334dea17", + "sha256:03d1b9c6b44a9e30d554654c72be89af94fab7510b4b9f62356c64c81cec8b7d", + "sha256:0537cc1195245bbe24f2913d1f9211b8f04eb203de9044630abd3664c6cc339c", + "sha256:06ca79e1efbbe2df795822df2fa173d1a2b38b6e0f047a0ec7903fbca1d1847e", + "sha256:08e8d09d96219ace6cb596506fb9b64ea5f270b2fb9121158b976d88871fcfd1", + "sha256:0b1e66346acfb17694d46175a0cea7d9036f12ed0c31dfe86f0f405eedde2bdd", + "sha256:0b97454ed5b1368b66ed414c754cba15b9750ce69938fc6153679787402e4cdf", + "sha256:0e4854cc02006ad6684ce092bdadab6f0912d131f91c2450ce6dbdea78ee3c0b", + "sha256:12a7dc8439544ed05c6553bf026d5e8fa7fad48d63958a95d61698df0e00092b", + "sha256:1b1ee48a130da4dd0eb8055bbab34abf3f6262957832fd575e0cab4979a15a41", + "sha256:1c0e1308307a75e07d1f1b5f0f56b5af84538a5e9027109a7bcf6cb47c434e72", + "sha256:1dedf4c64185a216c35eb488e6f433297c660321275734401760dafaeb0ad5c2", + "sha256:208bc904889c910d95aafcf7be9e677726df9ef71e216780170dbb7e37d118fa", + "sha256:211dfe2bd43bf5791d23afbe23a7952e8ac8b67591d24be3638cabb648b3a6eb", + "sha256:341330ed19074f956cb20877ad8d2ae50e458884bfa6a6df3ae28487cc76c768", + "sha256:344cb3badf6fc7316ad51835f56ac387bdf86c8e1b670904f18f437d70da4183", + "sha256:358f6364e4873f4d73360b35da30066f40387dd3c427a3e5432c6b28dd24a8fa", + "sha256:371f6570a81dfdddbb837ba432293a63b4babb942a9eb7aaa699997adfb53278", + "sha256:375d81366afd547b8558c4720337218345148bc2fcffa3a9870cab82b29667f2", + "sha256:3a1917d3941dd58732c449c810fa7ce46cc305ce9325a11261d740118b85e6f3", + "sha256:4081918147fc4c29fad328d5066cfc751da100a1098398742f9f364be63803fc", + "sha256:444fb776f58f4906d8d354eb6f6ce59d0a60f7b6a720da6c1ccb839db7c80eb9", + "sha256:46deb310a276cc5c1fd27958e358cce68b1e8a515fa5a574c670a504c3a3fe30", + "sha256:494efed2c761f0f37262815f9e3c4bb9917c5c69806abdee1d1cb6611a7174a0", + "sha256:50627bf76abb6ba291ad08db583161939c2c5fab38c38181b7833423ab9c7de3", + "sha256:5641927cc5ae66155d0c80195dc35726eae060e7defc18b7ab27600f39dd1fe7", + "sha256:5b117d29433fc8393b18a696d794961464e37afb34a6eeb8b2c37b5f4128a83e", + "sha256:613c665529899b5d9fade7e5d1760111a0b011231277a0d36c49f0d3d6914bd6", + "sha256:6e459ebb8bb5ee4c22c19cc000174f8059981971a33ce11e17dddf6aca97a142", + "sha256:6f56515e7c6fae4529b731f6c117752247bef9cdad2b12fc5ddf8ca6a50965a5", + "sha256:730c27978a0003b47b359935478b7d63fd8386dbb2dcd36c1e8de88cbfc1e9de", + "sha256:75a2e638042118118ab39d337da4c7908c1af74a8464cad59f19fbc5bbafec9b", + "sha256:78ced51807ccb2f45d4ea73aca339756d75d021069604c2fccd05390dc3c28eb", + "sha256:7ee394502026d68652c2824348a40bf50f31351a668977b51437131a90d777ea", + "sha256:8468b40528fa1e15181cccec4198623b55dcd58306f8815a793803f51f6c474a", + "sha256:84c593aeff7a0171f639da92cb86d24954bbb61f8a1b530f74eb750a14685832", + "sha256:913bac9d064cff033cf3719e855d4f1db9f1c179e0ecf3ba9fdef21c21c6a16a", + "sha256:9447c45df407d3ecb717d837af3b70cfef432138530712263730783b3d016512", + "sha256:9b0e7fe7f949fb719b206548e5cde2518ffb29936afa4303d8a1c4db43dcb675", + "sha256:9bc407a6af672da20da74823443707e38ece8b93a04009dca25856c2d9adadb1", + "sha256:9e8e686a6db92a46111a1ee0ee6f7fbfae4048f0019de207149f43ac1812cf95", + "sha256:9fc4e7973ed0e1fe689435842a6e6b330eb7ccc696080dda9a97b1a1b78e41db", + "sha256:a457ee72d9032e86730f62c5eeddf402e732fdf5ca8b13b41772aa8ae13a4563", + "sha256:a628bba09ba72e472bf7b31018b6281fd4cc903f0888049a3724afba13b6e0b8", + "sha256:a79d239fc22c3b8d9d3de492aa0c245533f4f4c7608e5749af866949c0f1b1b9", + "sha256:aa4674cf3fa2bd9c322982644967f01eed0c91bb890f624e0e0daf7a5c3383e9", + "sha256:acd2bd02f1a7adff3a1f33e431eb96ab6d7987b039d2946a9b39fe6fb16a1036", + "sha256:b3b1bd7577c530eaf9d2bc52d1a93fef50ac516a8b1062c3d1b9bcec9ebe329b", + "sha256:b48d94386f1994db7c70c76b5808c12e23ed7a4ee13693c2fc5ab109d60243c0", + "sha256:b64f747e92af7da3b85631a55d68c45a2d728b4036b03cdaba4bd94bcc85bd6f", + "sha256:b98c820608e2dca6442e786817f646d11057c09a23b68d2b3737e6dcb6e4a49b", + "sha256:c1baa49ab9fedbf19d40d93163b7d3e735d9cd8d5efe4cce9907902a6dad391f", + "sha256:c38c6536c2d71ca2f7e418acaf5bca30a3af7f2a2fa106083c7d738337848dbe", + "sha256:c78bfbc1a7bff053baf7e508449d2765964d67735c909b583204e3240a2aca45", + "sha256:cd2bc0c8f2e8de7dd89a7f1c10b8844e291bca17d359373203ef2e6100819edd", + "sha256:d2eff2af97ea0b61381828b1ad6cd249bbd41d280e53aea5cccd7b2b31b8225c", + "sha256:d8834c14b8c3dd849005e06703469db9bf96ba2d66a3f88ecc539c9a8982e0ee", + "sha256:d912f0154a20a80ea449daada904a7eb6941c83281a9fab95de50529bfc3a1da", + "sha256:da1ef35fd79be2926ba80fbb36327463e3656c02526e9b5b4c2b366588b74d9a", + "sha256:dbe6fe7a1166b1ddd7b6d887ea6fa8389d3f28b5ed3f73a8f40ece1fc5a3d340", + "sha256:dcd556c8fc37a342dd636d7eef150b1399f823a4462f8c968e11e1ebeabee769", + "sha256:e13b31d1b4b68db60b3b29f8e337908f328c7f05b9add4b1b5c74e0691180109", + "sha256:e1739496c2f0108013629aa095cc32a8c6363444361960c07493818d0dea2da4", + "sha256:e43255a83835a129ef98f75d13d643844d8c646b258bebd11e4a0975203e018f", + "sha256:e626cefff8491bce356221c22af5a3ea528b0b41fbabc719c00ae233819ea0bf", + "sha256:eadad75bf91897f922e0fb3dca1b322a58b1726a953f98c2e5f0606bd8408621", + "sha256:f33da6b5d19ad1bb5e7ad38bb8ba5c426d2178928bc2b2c44e8823ea0ecb6ff3", + "sha256:f4052a8a4926d4468416fc7d4b2a7b2a3e35f25b39f4061a7e2a3a2748c4fc48", + "sha256:f6ca38dd8d988eca8f07305125dec6f54ac1c518f1aaddcc14d08c01aebb6efc" + ], + "markers": "python_version >= '3.7'", + "version": "==1.0.6" + }, + "cycler": { + "hashes": [ + "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3", + "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f" + ], + "markers": "python_version >= '3.6'", + "version": "==0.11.0" + }, + "debugpy": { + "hashes": [ + "sha256:34d2cdd3a7c87302ba5322b86e79c32c2115be396f3f09ca13306d8a04fe0f16", + "sha256:3c9f985944a30cfc9ae4306ac6a27b9c31dba72ca943214dad4a0ab3840f6161", + "sha256:4e255982552b0edfe3a6264438dbd62d404baa6556a81a88f9420d3ed79b06ae", + "sha256:5ad571a36cec137ae6ed951d0ff75b5e092e9af6683da084753231150cbc5b25", + "sha256:6efc30325b68e451118b795eff6fe8488253ca3958251d5158106d9c87581bc6", + "sha256:7c302095a81be0d5c19f6529b600bac971440db3e226dce85347cc27e6a61908", + "sha256:84c39940a0cac410bf6aa4db00ba174f973eef521fbe9dd058e26bcabad89c4f", + "sha256:86d784b72c5411c833af1cd45b83d80c252b77c3bfdb43db17c441d772f4c734", + "sha256:adcfea5ea06d55d505375995e150c06445e2b20cd12885bcae566148c076636b", + "sha256:b8deaeb779699350deeed835322730a3efec170b88927debc9ba07a1a38e2585", + "sha256:c4b2bd5c245eeb49824bf7e539f95fb17f9a756186e51c3e513e32999d8846f3", + "sha256:c4cd6f37e3c168080d61d698390dfe2cd9e74ebf80b448069822a15dadcda57d", + "sha256:cca23cb6161ac89698d629d892520327dd1be9321c0960e610bbcb807232b45d", + "sha256:d5c814596a170a0a58fa6fad74947e30bfd7e192a5d2d7bd6a12156c2899e13a", + "sha256:daadab4403427abd090eccb38d8901afd8b393e01fd243048fab3f1d7132abb4", + "sha256:dda8652520eae3945833e061cbe2993ad94a0b545aebd62e4e6b80ee616c76b2", + "sha256:e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf", + "sha256:fc233a0160f3b117b20216f1169e7211b83235e3cd6749bcdd8dbb72177030c7" + ], + "markers": "python_version >= '3.7'", + "version": "==1.6.3" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "defusedxml": { + "hashes": [ + "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", + "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.7.1" + }, + "entrypoints": { + "hashes": [ + "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4", + "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f" + ], + "markers": "python_version >= '3.6'", + "version": "==0.4" + }, + "executing": { + "hashes": [ + "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", + "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" + ], + "version": "==1.2.0" + }, + "fastjsonschema": { + "hashes": [ + "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18", + "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c" + ], + "version": "==2.16.2" + }, + "fonttools": { + "hashes": [ + "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1", + "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb" + ], + "markers": "python_version >= '3.7'", + "version": "==4.38.0" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "markers": "python_version >= '3.5'", + "version": "==3.4" + }, + "inflection": { + "hashes": [ + "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417", + "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2" + ], + "markers": "python_version >= '3.5'", + "version": "==0.5.1" + }, + "ipykernel": { + "hashes": [ + "sha256:3a9a1b2ad6dbbd5879855aabb4557f08e63fa2208bffed897f03070e2bb436f6", + "sha256:e178c1788399f93a459c241fe07c3b810771c607b1fb064a99d2c5d40c90c5d4" + ], + "markers": "python_version >= '3.8'", + "version": "==6.17.1" + }, + "ipython": { + "hashes": [ + "sha256:7c959e3dedbf7ed81f9b9d8833df252c430610e2a4a6464ec13cd20975ce20a5", + "sha256:91ef03016bcf72dd17190f863476e7c799c6126ec7e8be97719d1bc9a78a59a4" + ], + "markers": "python_version >= '3.8'", + "version": "==8.6.0" + }, + "ipython-genutils": { + "hashes": [ + "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", + "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" + ], + "version": "==0.2.0" + }, + "ipywidgets": { + "hashes": [ + "sha256:08cb75c6e0a96836147cbfdc55580ae04d13e05d26ffbc377b4e1c68baa28b1f", + "sha256:1dc3dd4ee19ded045ea7c86eb273033d238d8e43f9e7872c52d092683f263891" + ], + "markers": "python_version >= '3.7'", + "version": "==8.0.2" + }, + "jedi": { + "hashes": [ + "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", + "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" + ], + "markers": "python_version >= '3.6'", + "version": "==0.18.2" + }, + "jinja2": { + "hashes": [ + "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", + "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.2" + }, + "joblib": { + "hashes": [ + "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385", + "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018" + ], + "markers": "python_version >= '3.7'", + "version": "==1.2.0" + }, + "jsonschema": { + "hashes": [ + "sha256:05b2d22c83640cde0b7e0aa329ca7754fbd98ea66ad8ae24aa61328dfe057fa3", + "sha256:410ef23dcdbca4eaedc08b850079179883c2ed09378bd1f760d4af4aacfa28d7" + ], + "markers": "python_version >= '3.7'", + "version": "==4.17.1" + }, + "jupyter": { + "hashes": [ + "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7", + "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78", + "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f" + ], + "index": "pypi", + "version": "==1.0.0" + }, + "jupyter-bokeh": { + "hashes": [ + "sha256:7292599c889596488425a9a4ae13fda0b899d1462efc010ec5befdd627a0c1ad" + ], + "index": "pypi", + "version": "==3.0.5" + }, + "jupyter-client": { + "hashes": [ + "sha256:330f6b627e0b4bf2f54a3a0dd9e4a22d2b649c8518168afedce2c96a1ceb2860", + "sha256:df56ae23b8e1da1b66f89dee1368e948b24a7f780fa822c5735187589fc4c157" + ], + "markers": "python_version >= '3.7'", + "version": "==7.4.7" + }, + "jupyter-console": { + "hashes": [ + "sha256:172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb", + "sha256:756df7f4f60c986e7bc0172e4493d3830a7e6e75c08750bbe59c0a5403ad6dee" + ], + "markers": "python_version >= '3.7'", + "version": "==6.4.4" + }, + "jupyter-core": { + "hashes": [ + "sha256:4ed68b7c606197c7e344a24b7195eef57898157075a69655a886074b6beb7043", + "sha256:6da1fae48190da8551e1b5dbbb19d51d00b079d59a073c7030407ecaf96dbb1e" + ], + "markers": "python_version >= '3.8'", + "version": "==5.0.0" + }, + "jupyter-server": { + "hashes": [ + "sha256:438496cac509709cc85e60172e5538ca45b4c8a0862bb97cd73e49f2ace419cb", + "sha256:f7f7a2f9d36f4150ad125afef0e20b1c76c8ff83eb5e39fb02d3b9df0f9b79ab" + ], + "markers": "python_version >= '3.7'", + "version": "==1.23.3" + }, + "jupyterlab-pygments": { + "hashes": [ + "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f", + "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d" + ], + "markers": "python_version >= '3.7'", + "version": "==0.2.2" + }, + "jupyterlab-widgets": { + "hashes": [ + "sha256:6aa1bc0045470d54d76b9c0b7609a8f8f0087573bae25700a370c11f82cb38c8", + "sha256:c767181399b4ca8b647befe2d913b1260f51bf9d8ef9b7a14632d4c1a7b536bd" + ], + "markers": "python_version >= '3.7'", + "version": "==3.0.3" + }, + "kiwisolver": { + "hashes": [ + "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b", + "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166", + "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c", + "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c", + "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0", + "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4", + "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9", + "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286", + "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767", + "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c", + "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6", + "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b", + "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004", + "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf", + "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494", + "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac", + "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626", + "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766", + "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514", + "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6", + "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f", + "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d", + "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191", + "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d", + "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51", + "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f", + "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8", + "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454", + "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb", + "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da", + "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8", + "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de", + "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a", + "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9", + "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008", + "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3", + "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32", + "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938", + "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1", + "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9", + "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d", + "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824", + "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b", + "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd", + "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2", + "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5", + "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69", + "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3", + "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae", + "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597", + "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e", + "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955", + "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca", + "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a", + "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea", + "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede", + "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4", + "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6", + "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686", + "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408", + "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871", + "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29", + "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750", + "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897", + "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0", + "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2", + "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09", + "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c" + ], + "markers": "python_version >= '3.7'", + "version": "==1.4.4" + }, + "markupsafe": { + "hashes": [ + "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", + "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", + "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", + "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", + "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", + "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", + "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", + "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", + "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", + "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", + "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", + "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", + "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", + "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", + "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", + "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", + "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", + "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", + "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", + "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", + "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", + "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", + "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", + "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", + "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", + "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", + "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", + "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", + "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", + "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", + "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", + "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", + "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", + "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", + "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", + "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", + "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", + "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", + "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", + "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.1" + }, + "matplotlib": { + "hashes": [ + "sha256:0844523dfaaff566e39dbfa74e6f6dc42e92f7a365ce80929c5030b84caa563a", + "sha256:0eda9d1b43f265da91fb9ae10d6922b5a986e2234470a524e6b18f14095b20d2", + "sha256:168093410b99f647ba61361b208f7b0d64dde1172b5b1796d765cd243cadb501", + "sha256:1836f366272b1557a613f8265db220eb8dd883202bbbabe01bad5a4eadfd0c95", + "sha256:19d61ee6414c44a04addbe33005ab1f87539d9f395e25afcbe9a3c50ce77c65c", + "sha256:252957e208c23db72ca9918cb33e160c7833faebf295aaedb43f5b083832a267", + "sha256:32d29c8c26362169c80c5718ce367e8c64f4dd068a424e7110df1dd2ed7bd428", + "sha256:380d48c15ec41102a2b70858ab1dedfa33eb77b2c0982cb65a200ae67a48e9cb", + "sha256:3964934731fd7a289a91d315919cf757f293969a4244941ab10513d2351b4e83", + "sha256:3cef89888a466228fc4e4b2954e740ce8e9afde7c4315fdd18caa1b8de58ca17", + "sha256:4426c74761790bff46e3d906c14c7aab727543293eed5a924300a952e1a3a3c1", + "sha256:5024b8ed83d7f8809982d095d8ab0b179bebc07616a9713f86d30cf4944acb73", + "sha256:52c2bdd7cd0bf9d5ccdf9c1816568fd4ccd51a4d82419cc5480f548981b47dd0", + "sha256:54fa9fe27f5466b86126ff38123261188bed568c1019e4716af01f97a12fe812", + "sha256:5ba73aa3aca35d2981e0b31230d58abb7b5d7ca104e543ae49709208d8ce706a", + "sha256:5e16dcaecffd55b955aa5e2b8a804379789c15987e8ebd2f32f01398a81e975b", + "sha256:5ecfc6559132116dedfc482d0ad9df8a89dc5909eebffd22f3deb684132d002f", + "sha256:74153008bd24366cf099d1f1e83808d179d618c4e32edb0d489d526523a94d9f", + "sha256:78ec3c3412cf277e6252764ee4acbdbec6920cc87ad65862272aaa0e24381eee", + "sha256:795ad83940732b45d39b82571f87af0081c120feff2b12e748d96bb191169e33", + "sha256:7f716b6af94dc1b6b97c46401774472f0867e44595990fe80a8ba390f7a0a028", + "sha256:83dc89c5fd728fdb03b76f122f43b4dcee8c61f1489e232d9ad0f58020523e1c", + "sha256:8a0ae37576ed444fe853709bdceb2be4c7df6f7acae17b8378765bd28e61b3ae", + "sha256:8a8dbe2cb7f33ff54b16bb5c500673502a35f18ac1ed48625e997d40c922f9cc", + "sha256:8a9d899953c722b9afd7e88dbefd8fb276c686c3116a43c577cfabf636180558", + "sha256:8d0068e40837c1d0df6e3abf1cdc9a34a6d2611d90e29610fa1d2455aeb4e2e5", + "sha256:9347cc6822f38db2b1d1ce992f375289670e595a2d1c15961aacbe0977407dfc", + "sha256:9f335e5625feb90e323d7e3868ec337f7b9ad88b5d633f876e3b778813021dab", + "sha256:b03fd10a1709d0101c054883b550f7c4c5e974f751e2680318759af005964990", + "sha256:b0ca2c60d3966dfd6608f5f8c49b8a0fcf76de6654f2eda55fc6ef038d5a6f27", + "sha256:b2604c6450f9dd2c42e223b1f5dca9643a23cfecc9fde4a94bb38e0d2693b136", + "sha256:ca0e7a658fbafcddcaefaa07ba8dae9384be2343468a8e011061791588d839fa", + "sha256:d0e9ac04065a814d4cf2c6791a2ad563f739ae3ae830d716d54245c2b96fead6", + "sha256:d50e8c1e571ee39b5dfbc295c11ad65988879f68009dd281a6e1edbc2ff6c18c", + "sha256:d840adcad7354be6f2ec28d0706528b0026e4c3934cc6566b84eac18633eab1b", + "sha256:e0bbee6c2a5bf2a0017a9b5e397babb88f230e6f07c3cdff4a4c4bc75ed7c617", + "sha256:e5afe0a7ea0e3a7a257907060bee6724a6002b7eec55d0db16fd32409795f3e1", + "sha256:e68be81cd8c22b029924b6d0ee814c337c0e706b8d88495a617319e5dd5441c3", + "sha256:ec9be0f4826cdb3a3a517509dcc5f87f370251b76362051ab59e42b6b765f8c4", + "sha256:f04f97797df35e442ed09f529ad1235d1f1c0f30878e2fe09a2676b71a8801e0", + "sha256:f41e57ad63d336fe50d3a67bb8eaa26c09f6dda6a59f76777a99b8ccd8e26aec" + ], + "markers": "python_version >= '3.8'", + "version": "==3.6.2" + }, + "matplotlib-inline": { + "hashes": [ + "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", + "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" + ], + "markers": "python_version >= '3.5'", + "version": "==0.1.6" + }, + "mistune": { + "hashes": [ + "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d", + "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808" + ], + "version": "==2.0.4" + }, + "more-itertools": { + "hashes": [ + "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41", + "sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab" + ], + "markers": "python_version >= '3.7'", + "version": "==9.0.0" + }, + "nbclassic": { + "hashes": [ + "sha256:c74d8a500f8e058d46b576a41e5bc640711e1032cf7541dde5f73ea49497e283", + "sha256:cbf05df5842b420d5cece0143462380ea9d308ff57c2dc0eb4d6e035b18fbfb3" + ], + "markers": "python_version >= '3.7'", + "version": "==0.4.8" + }, + "nbclient": { + "hashes": [ + "sha256:434c91385cf3e53084185334d675a0d33c615108b391e260915d1aa8e86661b8", + "sha256:a1d844efd6da9bc39d2209bf996dbd8e07bf0f36b796edfabaa8f8a9ab77c3aa" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==0.7.0" + }, + "nbconvert": { + "hashes": [ + "sha256:3e90e108bb5637b5b8a1422af1156af1368b39dd25369ff7faa7dfdcdef18f81", + "sha256:8fdc44fd7d9424db7fdc6e1e834a02f6b8620ffb653767388be2f9eb16f84184" + ], + "markers": "python_version >= '3.7'", + "version": "==7.2.5" + }, + "nbformat": { + "hashes": [ + "sha256:1b05ec2c552c2f1adc745f4eddce1eac8ca9ffd59bb9fd859e827eaa031319f9", + "sha256:1d4760c15c1a04269ef5caf375be8b98dd2f696e5eb9e603ec2bf091f9b0d3f3" + ], + "markers": "python_version >= '3.7'", + "version": "==5.7.0" + }, + "nest-asyncio": { + "hashes": [ + "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", + "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290" + ], + "markers": "python_version >= '3.5'", + "version": "==1.5.6" + }, + "notebook": { + "hashes": [ + "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0", + "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4" + ], + "index": "pypi", + "version": "==6.5.2" + }, + "notebook-shim": { + "hashes": [ + "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f", + "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949" + ], + "markers": "python_version >= '3.7'", + "version": "==0.2.2" + }, + "numpy": { + "hashes": [ + "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d", + "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07", + "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df", + "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9", + "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d", + "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a", + "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719", + "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2", + "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280", + "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa", + "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387", + "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1", + "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43", + "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f", + "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398", + "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63", + "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de", + "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8", + "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481", + "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0", + "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d", + "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e", + "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96", + "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb", + "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6", + "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d", + "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a", + "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135" + ], + "markers": "python_version >= '3.8'", + "version": "==1.23.5" + }, + "packaging": { + "hashes": [ + "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", + "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + ], + "markers": "python_version >= '3.6'", + "version": "==21.3" + }, + "pandas": { + "hashes": [ + "sha256:0183cb04a057cc38fde5244909fca9826d5d57c4a5b7390c0cc3fa7acd9fa883", + "sha256:1fc87eac0541a7d24648a001d553406f4256e744d92df1df8ebe41829a915028", + "sha256:220b98d15cee0b2cd839a6358bd1f273d0356bf964c1a1aeb32d47db0215488b", + "sha256:2552bffc808641c6eb471e55aa6899fa002ac94e4eebfa9ec058649122db5824", + "sha256:315e19a3e5c2ab47a67467fc0362cb36c7c60a93b6457f675d7d9615edad2ebe", + "sha256:344021ed3e639e017b452aa8f5f6bf38a8806f5852e217a7594417fb9bbfa00e", + "sha256:375262829c8c700c3e7cbb336810b94367b9c4889818bbd910d0ecb4e45dc261", + "sha256:457d8c3d42314ff47cc2d6c54f8fc0d23954b47977b2caed09cd9635cb75388b", + "sha256:4aed257c7484d01c9a194d9a94758b37d3d751849c05a0050c087a358c41ad1f", + "sha256:530948945e7b6c95e6fa7aa4be2be25764af53fba93fe76d912e35d1c9ee46f5", + "sha256:5ae7e989f12628f41e804847a8cc2943d362440132919a69429d4dea1f164da0", + "sha256:71f510b0efe1629bf2f7c0eadb1ff0b9cf611e87b73cd017e6b7d6adb40e2b3a", + "sha256:73f219fdc1777cf3c45fde7f0708732ec6950dfc598afc50588d0d285fddaefc", + "sha256:8092a368d3eb7116e270525329a3e5c15ae796ccdf7ccb17839a73b4f5084a39", + "sha256:82ae615826da838a8e5d4d630eb70c993ab8636f0eff13cb28aafc4291b632b5", + "sha256:9608000a5a45f663be6af5c70c3cbe634fa19243e720eb380c0d378666bc7702", + "sha256:a40dd1e9f22e01e66ed534d6a965eb99546b41d4d52dbdb66565608fde48203f", + "sha256:b4f5a82afa4f1ff482ab8ded2ae8a453a2cdfde2001567b3ca24a4c5c5ca0db3", + "sha256:c009a92e81ce836212ce7aa98b219db7961a8b95999b97af566b8dc8c33e9519", + "sha256:c218796d59d5abd8780170c937b812c9637e84c32f8271bbf9845970f8c1351f", + "sha256:cc3cd122bea268998b79adebbb8343b735a5511ec14efb70a39e7acbc11ccbdc", + "sha256:d0d8fd58df5d17ddb8c72a5075d87cd80d71b542571b5f78178fb067fa4e9c72", + "sha256:e18bc3764cbb5e118be139b3b611bc3fbc5d3be42a7e827d1096f46087b395eb", + "sha256:e2b83abd292194f350bb04e188f9379d36b8dfac24dd445d5c87575f3beaf789", + "sha256:e7469271497960b6a781eaa930cba8af400dd59b62ec9ca2f4d31a19f2f91090", + "sha256:e9dbacd22555c2d47f262ef96bb4e30880e5956169741400af8b306bbb24a273", + "sha256:f6257b314fc14958f8122779e5a1557517b0f8e500cfb2bd53fa1f75a8ad0af2" + ], + "index": "pypi", + "version": "==1.5.2" + }, + "pandocfilters": { + "hashes": [ + "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38", + "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.5.0" + }, + "parso": { + "hashes": [ + "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", + "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.3" + }, + "pexpect": { + "hashes": [ + "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", + "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" + ], + "markers": "sys_platform != 'win32'", + "version": "==4.8.0" + }, + "pickleshare": { + "hashes": [ + "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", + "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" + ], + "version": "==0.7.5" + }, + "pillow": { + "hashes": [ + "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040", + "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8", + "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65", + "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2", + "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627", + "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07", + "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef", + "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535", + "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c", + "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc", + "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3", + "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1", + "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c", + "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa", + "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32", + "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502", + "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4", + "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f", + "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812", + "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636", + "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20", + "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c", + "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91", + "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe", + "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b", + "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad", + "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9", + "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72", + "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4", + "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de", + "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29", + "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee", + "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c", + "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7", + "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11", + "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c", + "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c", + "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448", + "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b", + "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20", + "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228", + "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd", + "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699", + "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b", + "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2", + "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4", + "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c", + "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f", + "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2", + "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c", + "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3", + "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193", + "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48", + "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02", + "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8", + "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e", + "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f", + "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b", + "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74", + "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb", + "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0" + ], + "markers": "python_version >= '3.7'", + "version": "==9.3.0" + }, + "platformdirs": { + "hashes": [ + "sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7", + "sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10" + ], + "markers": "python_version >= '3.7'", + "version": "==2.5.4" + }, + "prometheus-client": { + "hashes": [ + "sha256:be26aa452490cfcf6da953f9436e95a9f2b4d578ca80094b4458930e5f584ab1", + "sha256:db7c05cbd13a0f79975592d112320f2605a325969b270a94b71dcabc47b931d2" + ], + "markers": "python_version >= '3.6'", + "version": "==0.15.0" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:535c29c31216c77302877d5120aef6c94ff573748a5b5ca5b1b1f76f5e700c73", + "sha256:ced598b222f6f4029c0800cefaa6a17373fb580cd093223003475ce32805c35b" + ], + "markers": "python_full_version >= '3.6.2'", + "version": "==3.0.33" + }, + "psutil": { + "hashes": [ + "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff", + "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1", + "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62", + "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549", + "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08", + "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7", + "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e", + "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe", + "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24", + "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad", + "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94", + "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8", + "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7", + "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==5.9.4" + }, + "ptyprocess": { + "hashes": [ + "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", + "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" + ], + "markers": "os_name != 'nt'", + "version": "==0.7.0" + }, + "pure-eval": { + "hashes": [ + "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", + "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" + ], + "version": "==0.2.2" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "pydot": { + "hashes": [ + "sha256:248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d", + "sha256:66c98190c65b8d2e2382a441b4c0edfdb4f4c025ef9cb9874de478fb0793a451" + ], + "index": "pypi", + "version": "==1.4.2" + }, + "pygments": { + "hashes": [ + "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1", + "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42" + ], + "markers": "python_version >= '3.6'", + "version": "==2.13.0" + }, + "pyparsing": { + "hashes": [ + "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", + "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" + ], + "markers": "python_full_version >= '3.6.8'", + "version": "==3.0.9" + }, + "pyrsistent": { + "hashes": [ + "sha256:055ab45d5911d7cae397dc418808d8802fb95262751872c841c170b0dbf51eed", + "sha256:111156137b2e71f3a9936baf27cb322e8024dac3dc54ec7fb9f0bcf3249e68bb", + "sha256:187d5730b0507d9285a96fca9716310d572e5464cadd19f22b63a6976254d77a", + "sha256:21455e2b16000440e896ab99e8304617151981ed40c29e9507ef1c2e4314ee95", + "sha256:2aede922a488861de0ad00c7630a6e2d57e8023e4be72d9d7147a9fcd2d30712", + "sha256:3ba4134a3ff0fc7ad225b6b457d1309f4698108fb6b35532d015dca8f5abed73", + "sha256:456cb30ca8bff00596519f2c53e42c245c09e1a4543945703acd4312949bfd41", + "sha256:71d332b0320642b3261e9fee47ab9e65872c2bd90260e5d225dabeed93cbd42b", + "sha256:879b4c2f4d41585c42df4d7654ddffff1239dc4065bc88b745f0341828b83e78", + "sha256:9cd3e9978d12b5d99cbdc727a3022da0430ad007dacf33d0bf554b96427f33ab", + "sha256:a178209e2df710e3f142cbd05313ba0c5ebed0a55d78d9945ac7a4e09d923308", + "sha256:b39725209e06759217d1ac5fcdb510e98670af9e37223985f330b611f62e7425", + "sha256:bfa0351be89c9fcbcb8c9879b826f4353be10f58f8a677efab0c017bf7137ec2", + "sha256:bfd880614c6237243ff53a0539f1cb26987a6dc8ac6e66e0c5a40617296a045e", + "sha256:c43bec251bbd10e3cb58ced80609c5c1eb238da9ca78b964aea410fb820d00d6", + "sha256:d690b18ac4b3e3cab73b0b7aa7dbe65978a172ff94970ff98d82f2031f8971c2", + "sha256:d6982b5a0237e1b7d876b60265564648a69b14017f3b5f908c5be2de3f9abb7a", + "sha256:dec3eac7549869365fe263831f576c8457f6c833937c68542d08fde73457d291", + "sha256:e371b844cec09d8dc424d940e54bba8f67a03ebea20ff7b7b0d56f526c71d584", + "sha256:e5d8f84d81e3729c3b506657dddfe46e8ba9c330bf1858ee33108f8bb2adb38a", + "sha256:ea6b79a02a28550c98b6ca9c35b9f492beaa54d7c5c9e9949555893c8a9234d0", + "sha256:f1258f4e6c42ad0b20f9cfcc3ada5bd6b83374516cd01c0960e3cb75fdca6770" + ], + "markers": "python_version >= '3.7'", + "version": "==0.19.2" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pytz": { + "hashes": [ + "sha256:222439474e9c98fced559f1709d89e6c9cbf8d79c794ff3eb9f8800064291427", + "sha256:e89512406b793ca39f5971bc999cc538ce125c0e51c27941bef4568b460095e2" + ], + "version": "==2022.6" + }, + "pyyaml": { + "hashes": [ + "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", + "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", + "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", + "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", + "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", + "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", + "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", + "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", + "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", + "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", + "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", + "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", + "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", + "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", + "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", + "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", + "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", + "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", + "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", + "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", + "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", + "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", + "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", + "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", + "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", + "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", + "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", + "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", + "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", + "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", + "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", + "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", + "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", + "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0" + }, + "pyzmq": { + "hashes": [ + "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107", + "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7", + "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d", + "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc", + "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c", + "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4", + "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8", + "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8", + "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287", + "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b", + "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f", + "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77", + "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066", + "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209", + "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd", + "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a", + "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4", + "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc", + "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58", + "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246", + "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62", + "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227", + "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b", + "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944", + "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2", + "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804", + "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8", + "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066", + "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1", + "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33", + "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639", + "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef", + "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a", + "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace", + "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00", + "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5", + "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b", + "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879", + "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340", + "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4", + "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4", + "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6", + "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3", + "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f", + "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3", + "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409", + "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913", + "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1", + "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43", + "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333", + "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75", + "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff", + "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e", + "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2", + "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef", + "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1", + "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330", + "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d", + "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0", + "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6", + "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea", + "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f", + "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff", + "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99", + "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b", + "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d", + "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be", + "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58", + "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc", + "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83", + "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d", + "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc", + "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66", + "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e" + ], + "markers": "python_version >= '3.6'", + "version": "==24.0.1" + }, + "qtconsole": { + "hashes": [ + "sha256:57748ea2fd26320a0b77adba20131cfbb13818c7c96d83fafcb110ff55f58b35", + "sha256:be13560c19bdb3b54ed9741a915aa701a68d424519e8341ac479a91209e694b2" + ], + "markers": "python_version >= '3.7'", + "version": "==5.4.0" + }, + "qtpy": { + "hashes": [ + "sha256:0603c9c83ccc035a4717a12908bf6bc6cb22509827ea2ec0e94c2da7c9ed57c5", + "sha256:8d6d544fc20facd27360ea189592e6135c614785f0dec0b4f083289de6beb408" + ], + "markers": "python_version >= '3.7'", + "version": "==2.3.0" + }, + "quandl": { + "hashes": [ + "sha256:0e3e5dc60fd057c73c67380b1b0f2e3dc0e4c500fb5e6e146ac3a3c0d992cd1d", + "sha256:6e0b82fbc7861610b3577c5397277c4220e065eee0fed4e46cd6b6021655b64c" + ], + "index": "pypi", + "version": "==3.7.0" + }, + "requests": { + "hashes": [ + "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", + "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + ], + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.1" + }, + "scikit-learn": { + "hashes": [ + "sha256:23fb9e74b813cc2528b5167d82ed08950b11106ccf50297161875e45152fb311", + "sha256:250da993701da88bf475e7c5746abf1285ea0ae47e4d0917cd13afd6600bb162", + "sha256:28b2bd6a1419acd522ff45d282c8ba23dbccb5338802ab0ee12baa4ade0aba4c", + "sha256:2ee2c649f2231b68511aabb0dc827edd8936aad682acc6263c34aed11bc95dac", + "sha256:30e27721adc308e8fd9f419f43068e43490005f911edf4476a9e585059fa8a83", + "sha256:38814f66285318f2e241305cca545eaa9b4126c65aa5dd78c69371f235f78e2b", + "sha256:4d3a19166d4e1cdfcab975c68f471e046ce01e74c42a9a33fa89a14c2fcedf60", + "sha256:5699cded6c0685426433c7e5afe0fecad80ec831ec7fa264940e50c796775cc5", + "sha256:6785b8a3093329bf90ac01801be5525551728ae73edb11baa175df660820add4", + "sha256:6d1c1394e38a3319ace620381f6f23cc807d8780e9915c152449a86fc8f1db21", + "sha256:701181792a28c82fecae12adb5d15d0ecf57bffab7cf4bdbb52c7b3fd428d540", + "sha256:748f2bd632d6993e8918d43f1a26c380aeda4e122a88840d4c3a9af99d4239fe", + "sha256:8e9dd76c7274055d1acf4526b8efb16a3531c26dcda714a0c16da99bf9d41900", + "sha256:bef51978a51ec19977700fe7b86aecea49c825884f3811756b74a3b152bb4e35", + "sha256:cd55c6fbef7608dbce1f22baf289dfcc6eb323247daa3c3542f73d389c724786", + "sha256:da5a2e95fef9805b1750e4abda4e834bf8835d26fc709a391543b53feee7bd0e", + "sha256:ee47f68d973cee7009f06edb956f2f5588a0f230f24a2a70175fd0ecf36e2653", + "sha256:f4931f2a6c06e02c6c17a05f8ae397e2545965bc7a0a6cb38c8cd7d4fba8624d", + "sha256:f5644663987ee221f5d1f47a593271b966c271c236fe05634e6bdc06041b5a2b", + "sha256:f5d4231af7199531e77da1b78a4cc6b3d960a00b1ec672578ac818aae2b9c35d", + "sha256:fd3ee69d36d42a7dcbb17e355a5653af5fd241a7dfd9133080b3dde8d9e2aafb" + ], + "index": "pypi", + "version": "==1.1.3" + }, + "scipy": { + "hashes": [ + "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31", + "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108", + "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0", + "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b", + "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e", + "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e", + "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5", + "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840", + "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58", + "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523", + "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd", + "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab", + "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c", + "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb", + "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096", + "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0", + "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc", + "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9", + "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c", + "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95", + "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027" + ], + "markers": "python_version >= '3.8'", + "version": "==1.9.3" + }, + "seaborn": { + "hashes": [ + "sha256:a9eb39cba095fcb1e4c89a7fab1c57137d70a715a7f2eefcd41c9913c4d4ed65", + "sha256:bb1eb1d51d3097368c187c3ef089c0288ec1fe8aa1c69fb324c68aa1d02df4c1" + ], + "index": "pypi", + "version": "==0.12.1" + }, + "send2trash": { + "hashes": [ + "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d", + "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08" + ], + "version": "==1.8.0" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "sklearn": { + "hashes": [ + "sha256:76b9ed1623775168657b86b5fe966d45752e5c87f528de6240c38923b94147c5" + ], + "index": "pypi", + "version": "==0.0.post1" + }, + "sniffio": { + "hashes": [ + "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", + "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" + ], + "markers": "python_version >= '3.7'", + "version": "==1.3.0" + }, + "soupsieve": { + "hashes": [ + "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", + "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" + ], + "markers": "python_version >= '3.6'", + "version": "==2.3.2.post1" + }, + "stack-data": { + "hashes": [ + "sha256:6c9a10eb5f342415fe085db551d673955611afb821551f554d91772415464315", + "sha256:960cb054d6a1b2fdd9cbd529e365b3c163e8dabf1272e02cfe36b58403cff5c6" + ], + "version": "==0.6.1" + }, + "terminado": { + "hashes": [ + "sha256:520feaa3aeab8ad64a69ca779be54be9234edb2d0d6567e76c93c2c9a4e6e43f", + "sha256:bf6fe52accd06d0661d7611cc73202121ec6ee51e46d8185d489ac074ca457c2" + ], + "markers": "python_version >= '3.7'", + "version": "==0.17.0" + }, + "threadpoolctl": { + "hashes": [ + "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b", + "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" + ], + "markers": "python_version >= '3.6'", + "version": "==3.1.0" + }, + "tinycss2": { + "hashes": [ + "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847", + "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627" + ], + "markers": "python_version >= '3.7'", + "version": "==1.2.1" + }, + "tornado": { + "hashes": [ + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" + ], + "markers": "python_version >= '3.7'", + "version": "==6.2" + }, + "traitlets": { + "hashes": [ + "sha256:1201b2c9f76097195989cdf7f65db9897593b0dfd69e4ac96016661bb6f0d30f", + "sha256:b122f9ff2f2f6c1709dab289a05555be011c87828e911c0cf4074b85cb780a79" + ], + "markers": "python_version >= '3.7'", + "version": "==5.5.0" + }, + "urllib3": { + "hashes": [ + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.13" + }, + "wcwidth": { + "hashes": [ + "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", + "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + ], + "version": "==0.2.5" + }, + "webencodings": { + "hashes": [ + "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", + "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" + ], + "version": "==0.5.1" + }, + "websocket-client": { + "hashes": [ + "sha256:d6b06432f184438d99ac1f456eaf22fe1ade524c3dd16e661142dc54e9cba574", + "sha256:d6e8f90ca8e2dd4e8027c4561adeb9456b54044312dba655e7cae652ceb9ae59" + ], + "markers": "python_version >= '3.7'", + "version": "==1.4.2" + }, + "widgetsnbextension": { + "hashes": [ + "sha256:34824864c062b0b3030ad78210db5ae6a3960dfb61d5b27562d6631774de0286", + "sha256:7f3b0de8fda692d31ef03743b598620e31c2668b835edbd3962d080ccecf31eb" + ], + "markers": "python_version >= '3.7'", + "version": "==4.0.3" + }, + "xyzservices": { + "hashes": [ + "sha256:5547b3d6bc06a60561d039fc9ef5fd521d8bea9b6b3d617410fd764b30c6c2bd", + "sha256:55651961708b9a14849978b339df76008c886df7a8326308a5549bae5516260c" + ], + "markers": "python_version >= '3.7'", + "version": "==2022.9.0" + } + }, + "develop": {} +} diff --git a/jupyter/jupyter-helloworld/dev.sh b/jupyter/jupyter-helloworld/dev.sh new file mode 100644 index 0000000..9cd6017 --- /dev/null +++ b/jupyter/jupyter-helloworld/dev.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -ex + +python -m pip install --upgrade pip + +python -m pip install pipenv + +pipenv sync + +pipenv run \ + jupyter-notebook \ + --allow-root \ + --ip=0.0.0.0 diff --git a/jupyter/jupyter-helloworld/google.csv b/jupyter/jupyter-helloworld/google.csv new file mode 100644 index 0000000..e4f28e7 --- /dev/null +++ b/jupyter/jupyter-helloworld/google.csv @@ -0,0 +1,1031 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2008-09-19,461,462.07,443.28,449.15,449.15,10006000 +2008-09-18,422.64,439.18,410.5,439.08,439.08,8589400 +2008-09-17,438.48,439.14,413.44,414.49,414.49,9126900 +2008-09-16,425.96,449.28,425.49,442.93,442.93,6990700 +2008-09-15,424,441.97,423.71,433.86,433.86,6567400 +2008-09-12,430.21,441.99,429,437.66,437.66,6028000 +2008-09-11,408.35,435.09,406.38,433.75,433.75,6471400 +2008-09-10,424.47,424.48,409.68,414.16,414.16,6226800 +2008-09-09,423.17,432.38,415,418.66,418.66,7229600 +2008-09-08,452.02,452.94,417.55,419.95,419.95,9017900 +2008-09-05,445.49,452.46,440.08,444.25,444.25,4534300 +2008-09-04,460,463.24,449.4,450.26,450.26,4848500 +2008-09-03,468.73,474.29,459.58,464.41,464.41,4314600 +2008-09-02,476.77,482.18,461.42,465.25,465.25,6111500 +2008-08-29,469.75,471.01,462.33,463.29,463.29,3848200 +2008-08-28,472.49,476.45,470.33,473.78,473.78,3029700 +2008-08-27,473.73,474.83,464.84,468.58,468.58,4387100 +2008-08-26,483.46,483.46,470.59,474.16,474.16,3308200 +2008-08-25,486.11,497,481.5,483.01,483.01,2014300 +2008-08-22,491.5,494.88,489.48,490.59,490.59,2297200 +2008-08-21,482.92,489.9,479.27,486.53,486.53,3514100 +2008-08-20,494.72,496.69,482.57,485,485,3982100 +2008-08-19,490.43,498.28,486.63,490.5,490.5,3046500 +2008-08-18,509.84,510,495.51,498.3,498.3,3333900 +2008-08-15,506.99,510.66,505.5,510.15,510.15,3545700 +2008-08-14,497.7,507.61,496.29,505.49,505.49,2918600 +2008-08-13,501.6,503.54,493.88,500.03,500.03,3625500 +2008-08-12,502,506.13,498,502.61,502.61,2755700 +2008-08-11,492.47,508.88,491.78,500.84,500.84,4239300 +2008-08-08,480.15,495.75,475.69,495.01,495.01,3739300 +2008-08-07,482,484,476.41,479.12,479.12,2773800 +2008-08-06,478.37,489.77,472.51,486.34,486.34,3375800 +2008-08-05,467.59,480.08,466.33,479.85,479.85,3584500 +2008-08-04,468.12,473.01,461.9,463,463,2487000 +2008-08-01,472.51,473.22,462.5,467.86,467.86,3007900 +2008-07-31,474.56,480.89,471.44,473.75,473.75,2865100 +2008-07-30,485.5,486.02,472.81,482.7,482.7,3490700 +2008-07-29,479.3,487.26,478,483.11,483.11,2802800 +2008-07-28,492.09,492.09,475.13,477.12,477.12,3160000 +2008-07-25,486.49,493.13,481.5,491.98,491.98,3183500 +2008-07-24,496.7,496.87,475.62,475.62,475.62,3540900 +2008-07-23,481.61,497.23,478.1,489.22,489.22,4894100 +2008-07-22,466.72,480.25,465.6,477.11,477.11,4691500 +2008-07-21,480.88,484.09,465.7,468.8,468.8,5901500 +2008-07-18,498.35,498.98,478.19,481.32,481.32,11292400 +2008-07-17,534.16,537.05,524.5,533.44,533.44,8787400 +2008-07-16,514.04,536.5,510.6,535.6,535.6,4742200 +2008-07-15,516.28,527.5,501.1,516.09,516.09,6071000 +2008-07-14,539,540.06,515.45,521.62,521.62,4424800 +2008-07-11,536.5,539.5,519.43,533.8,533.8,4981400 +2008-07-10,545,549.5,530.72,540.57,540.57,4331700 +2008-07-09,550.76,555.68,540.73,541.55,541.55,4154000 +2008-07-08,545.99,555.19,540,554.53,554.53,4932400 +2008-07-07,542.3,549,535.6,543.91,543.91,4255200 +2008-07-03,530.88,539.23,527.5,537,537,2400500 +2008-07-02,536.51,540.38,526.06,527.04,527.04,4223000 +2008-07-01,519.58,536.72,517,534.73,534.73,4959900 +2008-06-30,532.47,538,523.06,526.42,526.42,3765300 +2008-06-27,527.68,530,515.09,528.07,528.07,5436900 +2008-06-26,544.1,544.93,528.26,528.82,528.82,5659500 +2008-06-25,544.97,557.8,543.67,551,551,4122200 +2008-06-24,545.14,551.19,535.1,542.3,542.3,4672600 +2008-06-23,545.36,553.15,542.02,545.21,545.21,3635900 +2008-06-20,556.98,556.98,544.51,546.43,546.43,5983100 +2008-06-19,555.35,563.78,550.81,560.2,560.2,5683100 +2008-06-18,564.51,568.99,559.16,562.38,562.38,3381200 +2008-06-17,576.35,578.07,568.38,569.46,569.46,3462900 +2008-06-16,566.5,579.1,566.5,572.81,572.81,3542800 +2008-06-13,561.49,575.7,561.34,571.51,571.51,6184400 +2008-06-12,548.76,558,546.88,552.95,552.95,5491600 +2008-06-11,556.24,557.34,544.46,545.2,545.2,3812900 +2008-06-10,549.56,558.82,546.78,554.17,554.17,3657400 +2008-06-09,568.06,570,545.4,557.87,557.87,5288300 +2008-06-06,579.75,580.72,567,567,567,4734500 +2008-06-05,577.08,588.04,576.21,586.3,586.3,3916700 +2008-06-04,565.33,578,564.55,572.22,572.22,3363200 +2008-06-03,576.5,580.5,560.61,567.3,567.3,4305300 +2008-06-02,582.5,583.89,571.27,575,575,3674200 +2008-05-30,583.47,589.92,581.3,585.8,585.8,3225200 +2008-05-29,574.79,585.88,573.2,583,583,4845000 +2008-05-28,567.94,571.49,561.1,568.24,568.24,4050400 +2008-05-27,544.96,562.6,543.85,560.9,560.9,3865500 +2008-05-23,546.96,553,537.81,544.62,544.62,4431500 +2008-05-22,551.95,554.21,540.25,549.46,549.46,5076300 +2008-05-21,578.52,581.41,547.89,549.99,549.99,6468100 +2008-05-20,574.63,582.48,572.91,578.6,578.6,3313600 +2008-05-19,578.55,588.88,573.52,577.52,577.52,5604500 +2008-05-16,581.43,584.68,578.32,580.07,580.07,4274100 +2008-05-15,579,582.95,575.61,581,581,4342700 +2008-05-14,586.49,591.19,575.25,576.3,576.3,4375800 +2008-05-13,586.23,587.95,578.55,583,583,5163500 +2008-05-12,574.75,586.75,568.91,584.94,584.94,4863900 +2008-05-09,579,585,571.3,573.2,573.2,4484900 +2008-05-08,586.2,589.3,578.91,583.01,583.01,5122900 +2008-05-07,590.27,599.49,576.43,579,579,6613000 +2008-05-06,591,592,583,586.36,586.36,4629300 +2008-05-05,598.86,599,587.13,594.9,594.9,6281000 +2008-05-02,598.49,602.45,579.3,581.29,581.29,6998800 +2008-05-01,578.31,594.93,576.97,593.08,593.08,6602800 +2008-04-30,562.21,584.86,558.47,574.29,574.29,7903000 +2008-04-29,550.83,563.4,550.01,558.47,558.47,4346000 +2008-04-28,545.88,556.81,539,552.12,552.12,4008600 +2008-04-25,549.02,553,542.73,544.06,544.06,4164400 +2008-04-24,551.29,554.49,540.02,543.04,543.04,4135100 +2008-04-23,557.94,559.31,540.95,546.49,546.49,4921500 +2008-04-22,537.57,560.83,537.56,555,555,7938500 +2008-04-21,539.39,542.59,530.29,537.79,537.79,7439700 +2008-04-18,535.21,547.7,524.77,539.41,539.41,18235600 +2008-04-17,455.63,459.37,446.52,449.54,449.54,13353000 +2008-04-16,444.4,458.28,441,455.03,455.03,7620200 +2008-04-15,458.13,459.72,443.72,446.84,446.84,4577600 +2008-04-14,457.16,457.45,450.15,451.66,451.66,3842600 +2008-04-11,464.07,467.26,455.01,457.45,457.45,4151500 +2008-04-10,464.96,473.86,461.85,469.08,469.08,5072400 +2008-04-09,469.13,472,457.54,464.19,464.19,6048100 +2008-04-08,473.04,474.14,462.01,467.81,467.81,4547000 +2008-04-07,477.03,485.44,473.53,476.82,476.82,5943500 +2008-04-04,457.01,477.83,456.2,471.09,471.09,5897200 +2008-04-03,461.73,463.29,448.13,455.12,455.12,6778400 +2008-04-02,469.9,475.74,460.39,465.7,465.7,5999000 +2008-04-01,447.74,466.5,446.87,465.71,465.71,6093100 +2008-03-31,435.64,442.69,432.01,440.47,440.47,4446400 +2008-03-28,447.46,453.57,434.31,438.08,438.08,4376200 +2008-03-27,446,448.61,440.49,444.08,444.08,5832200 +2008-03-26,452.59,462.87,449.29,458.19,458.19,5214200 +2008-03-25,457.46,457.47,446,450.78,450.78,5831600 +2008-03-24,438.43,465.78,437.72,460.56,460.56,6763500 +2008-03-20,427.32,435.7,417.5,433.55,433.55,9900400 +2008-03-19,441.11,447.5,431.67,432,432,6179000 +2008-03-18,428.98,440.84,425.53,439.16,439.16,7237200 +2008-03-17,427.99,433.71,412.11,419.87,419.87,7888200 +2008-03-14,442.98,449.34,430.62,437.92,437.92,6574400 +2008-03-13,432.67,446.98,428.78,443.01,443.01,7726600 +2008-03-12,440.01,447.88,438.07,440.18,440.18,6651900 +2008-03-11,425.26,440.15,424.65,439.84,439.84,8826900 +2008-03-10,428.83,431,413.04,413.62,413.62,7987600 +2008-03-07,428.88,440,426.24,433.35,433.35,8071800 +2008-03-06,447.69,453.3,431.18,432.7,432.7,7470100 +2008-03-05,445.25,454.17,444,447.7,447.7,7436600 +2008-03-04,450.95,453.36,435.78,444.6,444.6,13621700 +2008-03-03,471.51,472.72,450.11,457.02,457.02,7554500 +2008-02-29,471.87,479.74,464.65,471.18,471.18,9425400 +2008-02-28,470.5,479.09,467.36,475.39,475.39,6586900 +2008-02-27,460.13,475.49,459.64,472.86,472.86,10121900 +2008-02-26,461.2,466.47,446.85,464.19,464.19,23287300 +2008-02-25,505.95,506.5,485.74,486.44,486.44,8350800 +2008-02-22,502.06,509,497.55,507.8,507.8,5515900 +2008-02-21,512.85,513.21,499.5,502.86,502.86,5677800 +2008-02-20,503.51,511.01,498.82,509,509,6662200 +2008-02-19,534.94,535.06,506.5,508.95,508.95,6350400 +2008-02-15,528.31,532.66,524.33,529.64,529.64,5240100 +2008-02-14,538.35,541.04,531,532.25,532.25,6476700 +2008-02-13,522.5,534.99,518.69,534.62,534.62,6624700 +2008-02-12,523.39,530.6,513.03,518.09,518.09,6662300 +2008-02-11,520.52,523.71,513.4,521.16,521.16,5826000 +2008-02-08,509.41,517.73,508.7,516.69,516.69,6828900 +2008-02-07,496.86,514.19,494.76,504.95,504.95,7928900 +2008-02-06,511.14,511.17,497.93,501.71,501.71,7636400 +2008-02-05,489.43,509,488.52,506.8,506.8,11203300 +2008-02-04,509.07,512.78,492.55,495.43,495.43,13157100 +2008-02-01,528.67,536.67,510,515.9,515.9,17600500 +2008-01-31,539.01,573,534.29,564.3,564.3,14722000 +2008-01-30,549.19,560.43,543.51,548.27,548.27,7939600 +2008-01-29,560.47,561.33,540.67,550.52,550.52,6283000 +2008-01-28,570.97,572.24,548.6,555.98,555.98,5806100 +2008-01-25,591.81,595,566.18,566.4,566.4,6951800 +2008-01-24,558.8,579.69,554.14,574.49,574.49,9400900 +2008-01-23,560.71,568,519,548.62,548.62,16965700 +2008-01-22,562.03,597.5,561.2,584.35,584.35,9490200 +2008-01-18,608.36,609.99,598.45,600.25,600.25,8539600 +2008-01-17,620.76,625.74,598.01,600.79,600.79,8216800 +2008-01-16,628.97,639.99,601.93,615.95,615.95,10560000 +2008-01-15,645.9,649.05,635.38,637.65,637.65,5568200 +2008-01-14,651.14,657.4,645.25,653.82,653.82,4447500 +2008-01-11,642.7,649.47,630.11,638.25,638.25,4977000 +2008-01-10,645.01,657.2,640.11,646.73,646.73,6334200 +2008-01-09,630.04,653.34,622.51,653.2,653.2,6739700 +2008-01-08,653,659.96,631,631.68,631.68,5339100 +2008-01-07,653.94,662.28,637.35,649.25,649.25,6403400 +2008-01-04,679.69,680.96,655,657,657,5359800 +2008-01-03,685.26,686.85,676.52,685.33,685.33,3252500 +2008-01-02,692.87,697.37,677.73,685.19,685.19,4306900 +2007-12-31,698.57,702.49,690.58,691.48,691.48,2376200 +2007-12-28,704.93,707.95,696.54,702.53,702.53,2537000 +2007-12-27,707.07,716,700.74,700.74,700.74,2942500 +2007-12-26,698.99,713.22,698.21,710.84,710.84,2530000 +2007-12-24,694.99,700.73,693.06,700.73,700.73,1628400 +2007-12-21,697.88,699.26,693.24,696.69,696.69,5382000 +2007-12-20,685.83,691,680.61,689.69,689.69,4422200 +2007-12-19,674.21,679.5,669,677.37,677.37,4421100 +2007-12-18,674.16,676.71,652.5,673.35,673.35,7166700 +2007-12-17,688,695.42,663.67,669.23,669.23,5486000 +2007-12-14,687.51,699.7,687.26,689.96,689.96,3673500 +2007-12-13,696.31,697.62,681.21,694.05,694.05,5040800 +2007-12-12,714,714.32,688.5,699.35,699.35,6159100 +2007-12-11,719.94,720.99,698.78,699.2,699.2,6139100 +2007-12-10,715.99,724.8,714,718.42,718.42,3856200 +2007-12-07,714.99,718,710.5,714.87,714.87,3852100 +2007-12-06,697.8,716.56,697.01,715.26,715.26,4909000 +2007-12-05,692.73,698.93,687.5,698.51,698.51,4209600 +2007-12-04,678.31,692,677.12,684.16,684.16,4231800 +2007-12-03,691.01,695,681.14,681.53,681.53,4325100 +2007-11-30,711,711.06,682.11,693,693,7895500 +2007-11-29,690.75,702.79,687.77,697,697,6208000 +2007-11-28,682.11,694.3,672.14,692.26,692.26,7916500 +2007-11-27,674.8,676.43,650.26,673.57,673.57,8904500 +2007-11-26,680.2,693.4,665,666,666,6790100 +2007-11-23,670,678.28,668.11,676.7,676.7,2738700 +2007-11-21,643.77,669.97,642.08,660.52,660.52,7013500 +2007-11-20,636.48,659.1,632.87,648.54,648.54,9816900 +2007-11-19,629.59,636.77,618.5,625.85,625.85,5527400 +2007-11-16,633.94,635.49,616.02,633.63,633.63,9042800 +2007-11-15,638.57,647.5,624,629.65,629.65,6967700 +2007-11-14,673.28,675.49,636.27,641.68,641.68,8094700 +2007-11-13,644.99,660.92,632.07,660.55,660.55,8426100 +2007-11-12,657.74,669.93,626.21,632.07,632.07,10227300 +2007-11-09,675.78,681.88,661.21,663.97,663.97,11388100 +2007-11-08,734.6,734.89,677.18,693.84,693.84,16512200 +2007-11-07,741.13,747.24,723.14,732.94,732.94,8252900 +2007-11-06,737.56,741.79,725,741.79,741.79,8436300 +2007-11-05,706.99,730.23,706.07,725.65,725.65,8883700 +2007-11-02,710.51,713.58,697.34,711.25,711.25,5841500 +2007-11-01,702.79,713.72,701.78,703.21,703.21,6527200 +2007-10-31,700.69,707,696.04,707,707,6876800 +2007-10-30,677.51,699.91,677.51,694.77,694.77,6887700 +2007-10-29,677.77,680,672.09,679.23,679.23,3066300 +2007-10-26,674.03,676.54,668.06,674.6,674.6,3353900 +2007-10-25,678.68,678.97,663.55,668.51,668.51,5795500 +2007-10-24,672.71,677.47,659.56,675.82,675.82,7404200 +2007-10-23,661.25,677.6,660,675.77,675.77,6793700 +2007-10-22,638.67,655,636.28,650.75,650.75,6598200 +2007-10-19,654.56,658.49,643.23,644.71,644.71,15768400 +2007-10-18,635.41,641.37,628.5,639.62,639.62,12289200 +2007-10-17,630.45,634,621.59,633.48,633.48,6007000 +2007-10-16,618.49,625.92,611.99,616,616,6014100 +2007-10-15,638.47,639.86,615.55,620.11,620.11,6943800 +2007-10-12,623.98,638.4,618.24,637.39,637.39,6823700 +2007-10-11,633.64,641.41,609,622,622,11799000 +2007-10-10,621.36,625.68,616.8,625.39,625.39,5343600 +2007-10-09,615.11,623.78,608.39,615.18,615.18,8767800 +2007-10-08,595,610.26,593.95,609.62,609.62,5028000 +2007-10-05,587.11,596,587.01,594.05,594.05,5068700 +2007-10-04,585.09,585.09,577.06,579.03,579.03,2986700 +2007-10-03,586.25,588.99,580.36,584.02,584.02,3879500 +2007-10-02,583.38,596.81,580.01,584.39,584.39,7056600 +2007-10-01,569.97,584.35,569.61,582.55,582.55,4711300 +2007-09-28,567,569.55,564.12,567.27,567.27,2497800 +2007-09-27,571.73,571.74,565.78,567.5,567.5,2034300 +2007-09-26,570.4,571.79,563.81,568.16,568.16,3346100 +2007-09-25,564,569.56,562.86,569,569,2730600 +2007-09-24,561,571.46,560,568.02,568.02,5297000 +2007-09-21,556.34,560.79,552.83,560.1,560.1,8011700 +2007-09-20,547,556.8,546.03,552.83,552.83,5525000 +2007-09-19,539.27,549.45,538.86,546.85,546.85,5526900 +2007-09-18,526.52,537.25,524.27,535.27,535.27,4215700 +2007-09-17,526.53,529.28,524.07,525.3,525.3,2197500 +2007-09-14,523.2,530.27,522.22,528.75,528.75,2764900 +2007-09-13,524.06,527.21,523.22,524.78,524.78,1891100 +2007-09-12,520.53,527.98,519,522.65,522.65,2986000 +2007-09-11,516.99,521.65,515.73,521.33,521.33,2703600 +2007-09-10,521.28,522.07,510.88,514.48,514.48,3225800 +2007-09-07,517.86,521.24,516.8,519.35,519.35,3663600 +2007-09-06,529.36,529.83,518.24,523.52,523.52,3625900 +2007-09-05,523.4,529.48,522.25,527.8,527.8,3312900 +2007-09-04,515.02,528,514.62,525.15,525.15,3693700 +2007-08-31,513.1,516.5,511.47,515.25,515.25,2977600 +2007-08-30,512.36,515.4,510.58,511.4,511.4,2651700 +2007-08-29,507.84,513.3,507.23,512.88,512.88,2549300 +2007-08-28,511.53,514.98,505.79,506.4,506.4,3273900 +2007-08-27,514.43,517.45,511.4,513.26,513.26,2325100 +2007-08-24,512.61,515.55,508.5,515,515,2472700 +2007-08-23,516,516.13,507,512.19,512.19,3076700 +2007-08-22,509.96,516.25,509.25,512.75,512.75,3252700 +2007-08-21,498.94,508.16,497.77,506.61,506.61,3610600 +2007-08-20,502.46,502.56,496,497.92,497.92,2697300 +2007-08-17,497.44,501,491.65,500.04,500.04,5479400 +2007-08-16,492.02,496.43,480.46,491.52,491.52,8645600 +2007-08-15,509,511.69,496.71,497.55,497.55,5409500 +2007-08-14,515.72,517.4,508,508.6,508.6,3633700 +2007-08-13,519.54,519.75,513.03,515.5,515.5,3179300 +2007-08-10,510.18,518.72,505.63,515.75,515.75,5875200 +2007-08-09,520.8,526.82,514.63,514.73,514.73,4846500 +2007-08-08,519.34,525.78,517.09,525.78,525.78,4068800 +2007-08-07,509.75,519.88,509.04,516.02,516.02,4264300 +2007-08-06,503,510.15,502.5,510,510,3651500 +2007-08-03,510.05,513.2,503,503,503,3176200 +2007-08-02,513.72,514.99,509,511.01,511.01,3154900 +2007-08-01,510.5,516.51,508.14,512.94,512.94,4421500 +2007-07-31,520.23,520.44,510,510,510,4270500 +2007-07-30,512.92,519.34,510.5,516.11,516.11,3963300 +2007-07-27,508.53,516.62,505.5,511.89,511.89,5509100 +2007-07-26,508.74,512.59,498.88,508,508,6883400 +2007-07-25,516.98,517.02,505.56,509.76,509.76,5545000 +2007-07-24,509.3,518.69,507.11,514,514,5572100 +2007-07-23,519.01,520,512.15,512.51,512.51,6356700 +2007-07-20,511.9,523.18,509.5,520.12,520.12,17772300 +2007-07-19,553.46,553.52,542.24,548.59,548.59,11127200 +2007-07-18,553.89,554.5,543.81,549.5,549.5,6080000 +2007-07-17,555.04,557.73,552.38,555,555,4328600 +2007-07-16,550.3,558.58,549.31,552.99,552.99,6599500 +2007-07-13,547.91,552.67,547.25,552.16,552.16,5237100 +2007-07-12,545.86,547.32,540.22,545.33,545.33,3441600 +2007-07-11,543.61,546.5,540.01,544.47,544.47,3309300 +2007-07-10,543.79,547,541.65,543.34,543.34,3856000 +2007-07-09,543,548.74,540.26,542.56,542.56,3729800 +2007-07-06,541.25,543.87,538.73,539.4,539.4,2747000 +2007-07-05,535.56,544.4,532.15,541.63,541.63,4942900 +2007-07-03,531.06,534.4,527.5,534.34,534.34,1871800 +2007-07-02,525.49,531.85,524.2,530.38,530.38,3487600 +2007-06-29,526.02,527.4,519.46,522.7,522.7,3880600 +2007-06-28,524.88,529.5,523.8,525.01,525.01,4168400 +2007-06-27,525,527.99,519.56,526.29,526.29,6123100 +2007-06-26,532.73,533.2,526.24,530.26,530.26,5689500 +2007-06-25,528.98,534.99,523.38,527.42,527.42,7925000 +2007-06-22,516.42,524.99,516.1,524.98,524.98,7203700 +2007-06-21,510.98,515.29,506.28,514.11,514.11,4409700 +2007-06-20,516.96,518.75,509.06,509.97,509.97,4338200 +2007-06-19,514.01,517.25,511.54,514.31,514.31,4355300 +2007-06-18,506.18,516,504.24,515.2,515.2,4835900 +2007-06-15,508.19,509,501.23,505.89,505.89,6174100 +2007-06-14,505.38,505.88,501.7,502.84,502.84,4621200 +2007-06-13,507.09,508.54,498.69,505.24,505.24,7034000 +2007-06-12,508.71,511.67,503.17,504.77,504.77,6419500 +2007-06-11,514.02,518.25,510,511.34,511.34,4647700 +2007-06-08,516.2,519.64,509.46,515.49,515.49,6358200 +2007-06-07,519.75,526.5,512.51,515.06,515.06,10630500 +2007-06-06,516.75,520.78,515.26,518.25,518.25,7886700 +2007-06-05,509.75,519,506.61,518.84,518.84,10447100 +2007-06-04,497.91,510.51,497.59,507.07,507.07,7101000 +2007-06-01,501,505.02,497.93,500.4,500.4,4799000 +2007-05-31,500.56,508.78,497.06,497.91,497.91,8924300 +2007-05-30,484.5,498.84,483,498.6,498.6,7245800 +2007-05-29,485,491.8,484,487.11,487.11,5218000 +2007-05-25,479.7,484.95,477.27,483.52,483.52,5348500 +2007-05-24,475.15,479.2,471.5,474.33,474.33,4173600 +2007-05-23,480.82,483.41,473.75,473.97,473.97,5060200 +2007-05-22,473,479.01,473,475.86,475.86,3839000 +2007-05-21,469.53,479.2,466.72,470.6,470.6,6159300 +2007-05-18,472.03,472.7,469.75,470.32,470.32,3695900 +2007-05-17,472.46,475.22,470.81,470.96,470.96,4660600 +2007-05-16,462,473.14,459.02,472.61,472.61,6554200 +2007-05-15,461.96,462.54,457.41,458,458,4119000 +2007-05-14,465.48,467.51,460,461.78,461.78,3872700 +2007-05-11,461.83,467,461,466.74,466.74,2944100 +2007-05-10,467.04,469.49,461.02,461.47,461.47,3686300 +2007-05-09,466.15,471.73,463.88,469.25,469.25,3889900 +2007-05-08,466.13,468.17,464.73,466.81,466.81,2905100 +2007-05-07,472.14,472.82,466.47,467.27,467.27,3020100 +2007-05-04,470.12,474.84,465.88,471.12,471.12,3950000 +2007-05-03,466.22,474.07,465.29,473.23,473.23,3594200 +2007-05-02,468.65,471.08,465.73,465.78,465.78,3062700 +2007-05-01,472.19,472.81,464.17,469,469,3658200 +2007-04-30,479.15,481.35,471.38,471.38,471.38,3641200 +2007-04-27,480.07,482.4,478.33,479.01,479.01,2925700 +2007-04-26,478.1,484.45,477.11,481.18,481.18,4124900 +2007-04-25,480,481.37,476.11,477.99,477.99,3966800 +2007-04-24,478.61,479.98,475.55,477.53,477.53,3694700 +2007-04-23,480.1,485,478.26,479.08,479.08,5674600 +2007-04-20,490.52,492.5,482.02,482.48,482.48,12161500 +2007-04-19,474.5,481.95,469.59,471.65,471.65,11009600 +2007-04-18,471.26,479.9,469.53,476.01,476.01,5670500 +2007-04-17,473.8,476.39,471.6,472.8,472.8,3210100 +2007-04-16,468.46,476.99,468.15,474.27,474.27,5077900 +2007-04-13,468.45,468.77,463.36,466.29,466.29,2794800 +2007-04-12,464,468,462.24,467.39,467.39,2707900 +2007-04-11,466.06,469.4,462.61,464.53,464.53,3812000 +2007-04-10,467.09,470.79,465.16,466.5,466.5,2979300 +2007-04-09,472.98,473,465.59,468.21,468.21,3062100 +2007-04-05,471.3,472.09,469.62,471.51,471.51,2715800 +2007-04-04,472.14,473,469.58,471.02,471.02,3778800 +2007-04-03,464.05,474.25,464,472.6,472.6,6501800 +2007-04-02,457.76,458.53,452.12,458.53,458.53,3448500 +2007-03-30,462.1,463.4,456.14,458.16,458.16,3380200 +2007-03-29,464.55,466,455,460.92,460.92,3988500 +2007-03-28,461.87,465.44,460.15,461.88,461.88,4591600 +2007-03-27,463.55,465.23,460.34,463.62,463.62,3741200 +2007-03-26,460.55,465,455.62,465,465,4710300 +2007-03-23,461.45,463.39,457.08,461.83,461.83,4111300 +2007-03-22,455.61,462.17,452.53,462.04,462.04,5680700 +2007-03-21,445.3,456.57,445.21,456.55,456.55,5798300 +2007-03-20,445.79,447.6,443.6,445.28,445.28,3421500 +2007-03-19,443.25,448.5,440.63,447.23,447.23,5197700 +2007-03-16,445.65,446.7,439.89,440.85,440.85,5659100 +2007-03-15,447.86,449.82,443.94,446.19,446.19,3944200 +2007-03-14,443.23,448.66,439,448,448,8016900 +2007-03-13,450.11,451.93,442.83,443.03,443.03,6377300 +2007-03-12,452.57,455.25,451.11,454.75,454.75,3465400 +2007-03-09,458,458.4,450.1,452.96,452.96,4977700 +2007-03-08,459.22,465.5,454.1,454.72,454.72,5362800 +2007-03-07,462.69,463.14,454.29,455.64,455.64,6534100 +2007-03-06,447.47,459,447.38,457.55,457.55,7533700 +2007-03-05,437.02,445.5,437,440.95,440.95,6355100 +2007-03-02,445.11,448.7,438.68,438.68,438.68,6583600 +2007-03-01,442.67,452.42,440,448.23,448.23,8685200 +2007-02-28,450.41,453.67,443.04,449.45,449.45,8032300 +2007-02-27,455,459.8,447.17,448.77,448.77,9312800 +2007-02-26,472.83,475.25,463.75,464.93,464.93,3969900 +2007-02-23,475.75,476.95,467.8,470.62,470.62,3882600 +2007-02-22,478.69,484.24,474.39,475.85,475.85,5743900 +2007-02-21,469.84,478.68,467.74,475.86,475.86,5640600 +2007-02-20,468.47,472.75,464.71,472.1,472.1,4067600 +2007-02-16,462.8,470.15,462.06,469.94,469.94,6177000 +2007-02-15,466,466.13,460.72,461.47,461.47,4042400 +2007-02-14,460,469.13,459.22,465.93,465.93,5698800 +2007-02-13,459.15,462.78,457.26,459.1,459.1,4062600 +2007-02-12,460.68,462.39,455.02,458.29,458.29,5754500 +2007-02-09,471.65,472.68,461.5,461.89,461.89,4858600 +2007-02-08,468.05,473.75,465.15,471.03,471.03,4076700 +2007-02-07,473.82,474.35,468.78,470.01,470.01,4119800 +2007-02-06,468.1,473.3,467.26,471.48,471.48,5321900 +2007-02-05,477.5,478,466.19,467.16,467.16,7206900 +2007-02-02,482.61,485,477.81,481.5,481.5,6286500 +2007-02-01,506,506.01,481.53,481.75,481.75,15658700 +2007-01-31,496.49,505,495.51,501.5,501.5,12206100 +2007-01-30,494,498,491.22,494.32,494.32,4180500 +2007-01-29,498,498.75,490.5,492.47,492.47,4775700 +2007-01-26,490.93,497.9,487.03,495.84,495.84,5496500 +2007-01-25,501,504.5,485.66,488.09,488.09,6368500 +2007-01-24,484.45,499.54,483.29,499.07,499.07,6059300 +2007-01-23,480.79,484.75,477.29,479.05,479.05,4665500 +2007-01-22,492.5,492.65,478.5,480.84,480.84,5404300 +2007-01-19,487.98,490.76,486.74,489.75,489.75,4978300 +2007-01-18,494.52,496.48,487.43,487.83,487.83,5932000 +2007-01-17,503.39,507.77,494.38,497.28,497.28,6699100 +2007-01-16,507.55,513,503.3,504.28,504.28,7568900 +2007-01-12,501.99,505,500,505,505,4473700 +2007-01-11,497.2,501.75,496.18,499.72,499.72,7208200 +2007-01-10,484.43,493.55,482.04,489.46,489.46,5968500 +2007-01-09,485.45,488.25,481.2,485.5,485.5,5381400 +2007-01-08,487.69,489.87,482.2,483.58,483.58,4754400 +2007-01-05,482.5,487.5,478.11,487.19,487.19,6872100 +2007-01-04,469,483.95,468.35,483.26,483.26,7887600 +2007-01-03,466,476.66,461.11,467.59,467.59,7706500 +2006-12-29,462.1,464.47,459.86,460.48,460.48,2559200 +2006-12-28,467.12,468.58,462.25,462.56,462.56,3116200 +2006-12-27,460,468.08,459.1,468.03,468.03,4231500 +2006-12-26,456.52,459.47,454.59,457.53,457.53,2074300 +2006-12-22,457.5,458.64,452.73,455.58,455.58,3988300 +2006-12-21,464.18,465.25,452.34,456.2,456.2,6953300 +2006-12-20,470,471.5,462.33,462.9,462.9,4367800 +2006-12-19,461.72,469.31,458.5,468.63,468.63,6587000 +2006-12-18,482.51,482.74,460.72,462.8,462.8,8016600 +2006-12-15,482.64,484.11,479.84,480.3,480.3,5190800 +2006-12-14,480.25,483.75,477.26,482.12,482.12,4748900 +2006-12-13,484.69,485.5,477.02,478.99,478.99,4662100 +2006-12-12,483.85,486.36,480.28,481.78,481.78,4181000 +2006-12-11,484.92,488.9,483.8,483.93,483.93,3263400 +2006-12-08,481.94,488.6,480,484.11,484.11,3974900 +2006-12-07,490.23,491.8,482.42,482.64,482.64,4664300 +2006-12-06,486.96,492.4,484.52,488.71,488.71,4450300 +2006-12-05,487.4,489.44,484.89,487,487,4103000 +2006-12-04,483,487.43,479.35,484.85,484.85,4899900 +2006-12-01,485.98,488.39,478.5,480.8,480.8,5631400 +2006-11-30,484.19,490.4,481.55,484.81,484.81,5577500 +2006-11-29,494.24,494.74,482.25,484.65,484.65,6315300 +2006-11-28,481.13,489.86,477.03,489.5,489.5,7797600 +2006-11-27,501.37,501.78,484.75,484.75,484.75,7324700 +2006-11-24,504.5,507.5,504,505,505,1732700 +2006-11-22,510.97,513,505.78,508.01,508.01,4500700 +2006-11-21,496.54,510,495.83,509.65,509.65,8427500 +2006-11-20,498.4,498.4,492.65,495.05,495.05,5124500 +2006-11-17,493.25,499.66,493,498.79,498.79,5511000 +2006-11-16,495,497.68,492.56,495.9,495.9,5092600 +2006-11-15,493.43,499.85,491.93,491.93,491.93,8370700 +2006-11-14,480.7,489.95,480.5,489.3,489.3,7223400 +2006-11-13,474.9,481.17,474.14,481.03,481.03,4341900 +2006-11-10,473.78,474.72,470.29,473.55,473.55,2796700 +2006-11-09,476.5,479.49,471.86,472.63,472.63,4879200 +2006-11-08,470.35,481.74,468.6,475,475,7965000 +2006-11-07,476.95,479.02,471.77,472.57,472.57,4897100 +2006-11-06,473.77,479.66,472.33,476.95,476.95,4991500 +2006-11-03,472.23,473.75,465.06,471.8,471.8,4907700 +2006-11-02,467.5,473.73,466.38,469.91,469.91,5236700 +2006-11-01,478.76,479.13,465.26,467.5,467.5,5426300 +2006-10-31,478.06,482.16,473.84,476.39,476.39,6285400 +2006-10-30,474.82,480.46,470.01,476.57,476.57,6563100 +2006-10-27,483.9,485.24,472.49,475.2,475.2,6604000 +2006-10-26,487.68,491.96,484.2,485.1,485.1,7031700 +2006-10-25,477.49,488.5,475.11,486.6,486.6,9187500 +2006-10-24,476.28,477.86,471.41,473.31,473.31,8660200 +2006-10-23,462.28,484.64,460.37,480.78,480.78,15104500 +2006-10-20,458.99,460.1,453.59,459.67,459.67,11647900 +2006-10-19,420.23,429.5,419.57,426.06,426.06,11503500 +2006-10-18,422.99,424.75,417.5,419.31,419.31,6017300 +2006-10-17,420.3,423.75,416.7,420.64,420.64,5211000 +2006-10-16,427.7,429.2,421.34,421.75,421.75,4319400 +2006-10-13,427.76,429.5,425.56,427.3,427.3,3622500 +2006-10-12,428.56,429.68,424,427.44,427.44,4844000 +2006-10-11,425.02,429.91,423.76,426.5,426.5,5635400 +2006-10-10,431.56,437.85,422.39,426.65,426.65,9788600 +2006-10-09,424.8,431.95,423.42,429,429,7583300 +2006-10-06,410.22,421.91,409.75,420.5,420.5,7336500 +2006-10-05,414.7,418.24,410.86,411.81,411.81,5789800 +2006-10-04,404.97,415.77,403.05,415.7,415.7,6661800 +2006-10-03,401.29,406.46,398.19,404.04,404.04,5464700 +2006-10-02,401.9,406,400.8,401.44,401.44,3651900 +2006-09-29,405.13,405.62,401.41,401.9,401.9,3310900 +2006-09-28,404.08,406.98,400.54,403.58,403.58,5107400 +2006-09-27,406.3,411.22,402.37,402.92,402.92,5876700 +2006-09-26,405.5,407.68,401.77,406.87,406.87,5289400 +2006-09-25,405.58,409.45,402.5,403.98,403.98,5737300 +2006-09-22,404.98,407.45,401.36,403.78,403.78,4649600 +2006-09-21,400.3,408.45,399.86,406.85,406.85,10692100 +2006-09-20,407.1,407.39,394.62,397,397,9147800 +2006-09-19,415.46,415.49,392.74,403.81,403.81,14292900 +2006-09-18,410,418.69,409.47,414.69,414.69,7106700 +2006-09-15,407.48,410.05,406.74,409.88,409.88,7838200 +2006-09-14,404.3,406.28,401.93,403.98,403.98,5366100 +2006-09-13,395.15,406.76,395.1,406.57,406.57,9768200 +2006-09-12,385,392.73,384.88,391.9,391.9,5442200 +2006-09-11,378.26,384.69,377.77,384.09,384.09,4529200 +2006-09-08,376.72,380.79,376.72,377.85,377.85,3083400 +2006-09-07,379.39,381.75,377.4,378.49,378.49,3842000 +2006-09-06,382.1,383.19,379.66,380.14,380.14,3724100 +2006-09-05,379.87,385.4,377.44,384.36,384.36,4074300 +2006-09-01,380.99,381.28,377.19,378.6,378.6,2672900 +2006-08-31,381.49,382.15,378.2,378.53,378.53,2959900 +2006-08-30,379.21,384.65,378.51,380.75,380.75,4044400 +2006-08-29,380.78,382.32,377.2,378.95,378.95,4460000 +2006-08-28,375.61,380.95,375,380.95,380.95,4164000 +2006-08-25,373.08,375.32,372.5,373.26,373.26,2466700 +2006-08-24,374.44,376.4,372.26,373.73,373.73,3482500 +2006-08-23,377.64,378.27,372.66,373.43,373.43,3642300 +2006-08-22,377.73,379.26,374.84,378.29,378.29,4164100 +2006-08-21,378.1,379,375.22,377.3,377.3,4023300 +2006-08-18,386.31,387.09,380.75,383.36,383.36,4952200 +2006-08-17,386.39,390,383.92,385.8,385.8,5080200 +2006-08-16,383.48,388.45,382.12,387.72,387.72,5853200 +2006-08-15,374.11,381.67,372.6,380.97,380.97,6698200 +2006-08-14,371.5,375.13,368.67,369.43,369.43,4968300 +2006-08-11,374.4,375.28,368,368.5,368.5,3766500 +2006-08-10,373.88,377.67,372.46,374.2,374.2,4261900 +2006-08-09,382.8,384.68,376.36,376.94,376.94,4311000 +2006-08-08,382.82,384.5,379.09,381,381,5743200 +2006-08-07,371.5,379.73,371.15,377.95,377.95,3946900 +2006-08-04,379.56,380.68,371.75,373.85,373.85,5095200 +2006-08-03,364.98,377.91,363.36,375.39,375.39,6327000 +2006-08-02,375.6,377.17,365.2,367.23,367.23,7097800 +2006-08-01,385.11,385.77,375.51,375.51,375.51,5463200 +2006-07-31,388,389.17,383.31,386.6,386.6,4595300 +2006-07-28,382,389.56,381.73,388.12,388.12,4083600 +2006-07-27,387.37,387.49,377.95,382.4,382.4,5641100 +2006-07-26,388.2,391.91,383,385.5,385.5,5531900 +2006-07-25,385.02,391.31,383.8,389.36,389.36,5761100 +2006-07-24,392.82,393.89,381.21,390.9,390.9,8086100 +2006-07-21,386.14,391.75,377.69,390.11,390.11,11754600 +2006-07-20,404.28,404.44,385.66,387.12,387.12,12538700 +2006-07-19,395.01,401.14,394.66,399,399,8518500 +2006-07-18,409.75,410.57,397.74,403.05,403.05,8536800 +2006-07-17,404.63,411,403.72,407.89,407.89,5811900 +2006-07-14,410.33,411.49,398.61,403.5,403.5,7552100 +2006-07-13,414,418.34,406.83,408.83,408.83,6924500 +2006-07-12,422.09,422.74,416.73,417.25,417.25,4906700 +2006-07-11,418.51,425.05,413.03,424.56,424.56,5971300 +2006-07-10,423.44,425.23,416.38,418.2,418.2,4436400 +2006-07-07,426.05,427.89,415.88,420.45,420.45,6041900 +2006-07-06,423.38,425.38,421.98,423.19,423.19,3687100 +2006-07-05,421.52,422.8,415.64,421.46,421.46,4985600 +2006-07-03,420.04,423.77,419.45,423.2,423.2,2156700 +2006-06-30,415.6,419.33,412.33,419.33,419.33,6258000 +2006-06-29,407.99,418.2,405.82,417.81,417.81,6658200 +2006-06-28,404.01,406.48,401.13,406.11,406.11,3710500 +2006-06-27,405.71,408,401.01,402.32,402.32,4107100 +2006-06-26,406.75,408.3,403.25,404.22,404.22,3551200 +2006-06-23,402.76,409.75,400.74,404.86,404.86,5314800 +2006-06-22,401.58,406,388,399.95,399.95,5911900 +2006-06-21,391.06,404,389.75,402.13,402.13,8744400 +2006-06-20,388.03,391.87,386.51,387.17,387.17,4039900 +2006-06-19,390.85,394.8,386.98,388.14,388.14,7633100 +2006-06-16,389.1,390.93,388,390.7,390.7,5304600 +2006-06-15,386.62,392.25,383,391,391,6785700 +2006-06-14,389.83,391.1,378.52,384.39,384.39,7772000 +2006-06-13,380.9,387,378.12,386.52,386.52,7659100 +2006-06-12,388.34,390.49,381,381.54,381.54,5019100 +2006-06-09,392.19,395.43,385.35,386.57,386.57,6157500 +2006-06-08,387.75,394.27,378.59,393.3,393.3,10359500 +2006-06-07,393.24,394.86,386.5,386.51,386.51,8911300 +2006-06-06,376.58,390,376.3,389.99,389.99,10259800 +2006-06-05,376.18,381.45,374.15,374.44,374.44,5558500 +2006-06-02,386.84,387.08,377.45,379.44,379.44,6386400 +2006-06-01,373.54,382.99,371.6,382.62,382.62,6278000 +2006-05-31,373.8,378.25,366.78,371.82,371.82,7981300 +2006-05-30,378.28,381,371.45,371.94,371.94,4316000 +2006-05-26,384.55,385.88,380.03,381.35,381.35,3667000 +2006-05-25,379.08,383,372.31,382.99,382.99,8194600 +2006-05-24,377.35,383.44,371.61,381.25,381.25,9553800 +2006-05-23,374.21,383.88,373.56,375.58,375.58,8983000 +2006-05-22,367.85,373.03,365.25,370.95,370.95,8604400 +2006-05-19,373.28,374.5,360.57,370.02,370.02,11398200 +2006-05-18,378.78,381.81,370.71,370.99,370.99,5835000 +2006-05-17,370.61,379.84,370.22,374.5,374.5,10643800 +2006-05-16,375.99,376.86,369.89,371.3,371.3,6491100 +2006-05-15,375.93,380.15,368.25,376.2,376.2,8590100 +2006-05-12,383.54,384.87,373.55,374.13,374.13,10087600 +2006-05-11,403.42,404.71,384.98,387,387,8892800 +2006-05-10,408.31,411.71,401.86,402.98,402.98,6187200 +2006-05-09,395.7,409,393.75,408.8,408.8,9140600 +2006-05-08,395.11,397.12,390.05,394.78,394.78,5118600 +2006-05-05,397.6,400.68,391.78,394.3,394.3,6065000 +2006-05-04,395.03,398.87,392.21,394.75,394.75,4652000 +2006-05-03,396.35,401.5,390.88,394.17,394.17,8072200 +2006-05-02,401.08,402.49,388.4,394.8,394.8,13104300 +2006-05-01,418.47,419.44,398.55,398.9,398.9,10361200 +2006-04-28,418.63,425.73,416.3,417.94,417.94,7421300 +2006-04-27,422.91,426.91,419.39,420.03,420.03,8337900 +2006-04-26,427.74,430.04,423.53,425.97,425.97,7277800 +2006-04-25,439.63,441.04,426,427.16,427.16,9569000 +2006-04-24,439.4,444.7,436.52,440.5,440.5,8836400 +2006-04-21,448.9,450.72,436.17,437.1,437.1,22551300 +2006-04-20,411.01,416,408.2,415,415,12271500 +2006-04-19,412.57,413.64,406.73,410.5,410.5,6781700 +2006-04-18,407.93,409.83,401.5,404.24,404.24,8137600 +2006-04-17,403.45,412.5,400.84,406.82,406.82,8259500 +2006-04-13,408.63,409.76,400.5,402.16,402.16,6552900 +2006-04-12,409,411.33,405.19,408.95,408.95,6017000 +2006-04-11,416.42,419.1,406.22,409.66,409.66,11107200 +2006-04-10,407.08,417.17,405.25,416.38,416.38,9320100 +2006-04-07,412.41,412.85,404.02,406.16,406.16,7025900 +2006-04-06,406.49,413.89,405.43,411.18,411.18,8598500 +2006-04-05,408.2,414.57,402.82,407.99,407.99,13410500 +2006-04-04,389.9,404.9,388.14,404.34,404.34,15715700 +2006-04-03,389.53,392.47,387.93,389.7,389.7,8122700 +2006-03-31,388.74,391.87,384.03,390,390,36521400 +2006-03-30,389.19,393.5,383.61,388.44,388.44,14711700 +2006-03-29,379.94,399,379.51,394.98,394.98,19027500 +2006-03-28,371.71,377.86,371.17,377.2,377.2,8945800 +2006-03-27,367.09,371.71,365,369.69,369.69,7023700 +2006-03-24,368.62,370.09,362.51,365.8,365.8,15180600 +2006-03-23,342.35,345.75,340.2,341.89,341.89,7434700 +2006-03-22,339.75,344.1,337.5,340.22,340.22,7596000 +2006-03-21,350.01,351.66,339.08,339.92,339.92,9831100 +2006-03-20,342.34,350.09,341.54,348.19,348.19,10407600 +2006-03-17,338.8,341.78,334.93,339.79,339.79,8551700 +2006-03-16,348.61,348.75,337.9,338.77,338.77,10016700 +2006-03-15,350.77,352.3,340.53,344.5,344.5,12768800 +2006-03-14,337.14,352.37,332.62,351.16,351.16,18450700 +2006-03-13,340.93,346.1,335.45,337.06,337.06,13642400 +2006-03-10,343.5,344.5,331.55,337.5,337.5,19325600 +2006-03-09,355.39,358.53,341.5,343,343,13910400 +2006-03-08,353.93,360.03,350.54,353.88,353.88,11745600 +2006-03-07,365.02,368.45,358.15,364.45,364.45,10378800 +2006-03-06,380.91,383.4,367.14,368.1,368.1,8939700 +2006-03-03,384.3,387.24,375.76,378.18,378.18,11962000 +2006-03-02,364.28,381.1,362.2,376.45,376.45,18330300 +2006-03-01,368.56,369.45,361.3,364.8,364.8,12061200 +2006-02-28,393.2,397.54,338.51,362.62,362.62,39437600 +2006-02-27,381.27,391.7,380.28,390.38,390.38,10212200 +2006-02-24,377.3,380.07,373.49,377.4,377.4,6484300 +2006-02-23,365.61,381.24,365.39,378.07,378.07,12551600 +2006-02-22,367.15,368.95,363.86,365.49,365.49,6476200 +2006-02-21,366.44,373.54,365.11,366.59,366.59,8686000 +2006-02-17,369.86,372.14,363.62,368.75,368.75,14320200 +2006-02-16,345.67,367,344.49,366.46,366.46,21315500 +2006-02-15,341.27,346,337.83,342.38,342.38,12947000 +2006-02-14,345.33,351.69,342.4,343.32,343.32,14654000 +2006-02-13,346.64,350.6,341.89,345.7,345.7,19717800 +2006-02-10,361.95,364.5,353.14,362.61,362.61,15223500 +2006-02-09,371.2,374.4,356.11,358.77,358.77,11912400 +2006-02-08,368.48,370.69,354.67,369.08,369.08,20804100 +2006-02-07,382.99,383.7,363.35,367.92,367.92,16630200 +2006-02-06,385.31,389.9,379.56,385.1,385.1,8940400 +2006-02-03,393.62,393.9,372.57,381.55,381.55,18281800 +2006-02-02,403.82,406.5,395.98,396.04,396.04,11807700 +2006-02-01,389.03,402,387.52,401.78,401.78,27122500 +2006-01-31,430.57,439.6,423.97,432.66,432.66,22066000 +2006-01-30,429.23,433.28,425,426.82,426.82,8588900 +2006-01-27,435,438.22,428.98,433.49,433.49,8452200 +2006-01-26,439.54,439.99,423.56,434.27,434.27,12926100 +2006-01-25,451.26,454.23,429.22,433,433,18739800 +2006-01-24,436.03,444.95,434.48,443.03,443.03,15464600 +2006-01-23,407.38,428.39,405.73,427.5,427.5,22741400 +2006-01-20,438.7,440.03,394.74,399.46,399.46,41116700 +2006-01-19,451.17,453.49,433,436.45,436.45,14537300 +2006-01-18,447.3,457.36,443.25,444.91,444.91,20485700 +2006-01-17,463.06,469.9,462.53,467.11,467.11,8270300 +2006-01-13,464.31,466.89,461.61,466.25,466.25,7656600 +2006-01-12,473.72,474.99,461.5,463.63,463.63,10125300 +2006-01-11,471.27,475.11,469.18,471.63,471.63,9007400 +2006-01-10,464.42,470.25,462.04,469.76,469.76,9097100 +2006-01-09,466.41,473.4,460.94,466.9,466.9,12791900 +2006-01-06,456.87,470.5,453.24,465.66,465.66,17756900 +2006-01-05,446,451.55,441.5,451.24,451.24,10808300 +2006-01-04,443.9,448.96,439.75,445.24,445.24,15286400 +2006-01-03,422.52,435.67,418.22,435.23,435.23,13121200 +2005-12-30,417.27,418.21,413.74,414.86,414.86,7587100 +2005-12-29,427.98,428.73,419.17,420.15,420.15,6945800 +2005-12-28,424.34,427.78,421.26,426.69,426.69,7117900 +2005-12-27,431.86,431.86,422.76,424.64,424.64,6702800 +2005-12-23,432.15,432.5,428.78,430.93,430.93,4595100 +2005-12-22,431.77,432.86,425.93,432.04,432.04,7546600 +2005-12-21,433.55,436.86,420.71,426.33,426.33,11221900 +2005-12-20,427.86,432.2,424.67,429.74,429.74,10084700 +2005-12-19,432.2,446.21,420.11,424.6,424.6,21936800 +2005-12-16,425.34,432.5,422.75,430.15,430.15,16330500 +2005-12-15,419.11,423.14,416.5,422.55,422.55,6045800 +2005-12-14,417.04,419.73,415.49,418.96,418.96,6630400 +2005-12-13,412.5,418,411.64,417.49,417.49,8157000 +2005-12-12,414.63,415.21,409.95,412.61,412.61,6950100 +2005-12-09,415,415.78,408.56,409.2,409.2,7643400 +2005-12-08,405.3,410.65,402.64,410.65,410.65,8910100 +2005-12-07,406.16,406.7,399.01,404.22,404.22,11665900 +2005-12-06,408.7,416.41,401.7,404.54,404.54,15114700 +2005-12-05,417,417.5,404.28,405.85,405.85,10289400 +2005-12-02,416.94,419.53,413.86,417.7,417.7,7543500 +2005-12-01,409.2,415.44,408.29,414.09,414.09,9744900 +2005-11-30,404.26,408.45,395.56,404.91,404.91,15596600 +2005-11-29,424.46,426.4,402.14,403.54,403.54,21495800 +2005-11-28,429.82,431.24,422.44,423.48,423.48,11008400 +2005-11-25,425.78,428.75,425.3,428.62,428.62,4840100 +2005-11-23,417.04,424.72,415.78,422.86,422.86,10085000 +2005-11-22,408.65,417.31,406.23,416.47,416.47,9596000 +2005-11-21,399.17,409.98,393.49,409.36,409.36,10335100 +2005-11-18,403.49,404.5,399.85,400.21,400.21,7025700 +2005-11-17,401.8,403.81,399.53,403.45,403.45,9212200 +2005-11-16,396.2,398.85,394.11,398.15,398.15,8695200 +2005-11-15,394.38,397,390.95,392.8,392.8,8624900 +2005-11-14,392.12,398.22,391.53,396.97,396.97,7807900 +2005-11-11,395.12,396.9,388.85,390.4,390.4,7063900 +2005-11-10,378.36,391.35,377.43,391.1,391.1,9128700 +2005-11-09,386.67,388.29,378.03,379.15,379.15,10466900 +2005-11-08,394.25,395.59,388.58,389.9,389.9,7897500 +2005-11-07,395.1,397.47,392.15,395.03,395.03,9591500 +2005-11-04,389.98,391.79,385.45,390.43,390.43,8824900 +2005-11-03,382.41,386.58,381.38,385.95,385.95,7448400 +2005-11-02,381.7,385,377.17,379.68,379.68,10565400 +2005-11-01,371.86,383.9,369.01,379.38,379.38,16356100 +2005-10-31,360.24,374.75,359.51,372.14,372.14,14342900 +2005-10-28,355.27,358.95,355.02,358.17,358.17,5903500 +2005-10-27,356.6,357.09,351.68,353.06,353.06,5134400 +2005-10-26,346.28,356,346.19,355.44,355.44,8907500 +2005-10-25,345.78,347.4,342.86,346.91,346.91,6878300 +2005-10-24,343.37,349.3,342.19,348.65,348.65,9431700 +2005-10-21,345.8,346.43,333,339.9,339.9,22892400 +2005-10-20,309.99,311.13,301.21,303.2,303.2,13911700 +2005-10-19,304,309.87,303.96,308.7,308.7,7010700 +2005-10-18,304.96,307.96,302.74,303.28,303.28,7077800 +2005-10-17,297.5,305.2,294.56,305,305,7566700 +2005-10-14,299.9,300.23,292.54,296.14,296.14,8519100 +2005-10-13,302,302,290.68,297.44,297.44,10567700 +2005-10-12,305.2,307.19,299,300.97,300.97,9306200 +2005-10-11,310.61,312.65,304.86,306.1,306.1,8542600 +2005-10-10,313.31,314.82,309.15,310.65,310.65,5572200 +2005-10-07,314.79,316.67,310.54,312.99,312.99,6770300 +2005-10-06,314.14,314.48,310.09,312.75,312.75,7993800 +2005-10-05,312.69,314.9,308,310.71,310.71,8328400 +2005-10-04,319.95,321.28,310.74,311,311,9144300 +2005-10-03,313.63,320.11,312.79,318.68,318.68,9160300 +2005-09-30,314.22,317.5,312.29,316.46,316.46,9151300 +2005-09-29,306.68,310.72,306.08,309.62,309.62,5613800 +2005-09-28,314.22,315.1,305.6,306,306,7997400 +2005-09-27,314.95,318.41,313.38,313.94,313.94,6873100 +2005-09-26,319.5,320.95,312.56,314.28,314.28,9894400 +2005-09-23,313,317.21,312.59,315.36,315.36,8483800 +2005-09-22,311.5,319.22,310.17,311.37,311.37,13006400 +2005-09-21,308.41,313.76,305.96,311.9,311.9,10119700 +2005-09-20,306.15,311.3,305.23,307.91,307.91,9351000 +2005-09-19,301,306,300.71,303.79,303.79,5761900 +2005-09-16,304.02,304.5,299.87,300.2,300.2,7579800 +2005-09-15,299.52,306.75,297.91,302.62,302.62,15466200 +2005-09-14,308.73,313.28,300.3,303,303,11275800 +2005-09-13,309,315.53,306.17,311.68,311.68,10299900 +2005-09-12,301.75,311.42,301,309.74,309.74,10386500 +2005-09-09,297.28,299.1,296.56,299.09,299.09,4390500 +2005-09-08,294.83,299.28,293.36,295.39,295.39,6613300 +2005-09-07,285.89,295.5,285.28,294.87,294.87,7499500 +2005-09-06,289,289.39,286.8,287.11,287.11,4212300 +2005-09-02,286.51,289.99,286.44,288.45,288.45,3434500 +2005-09-01,285.91,287.5,285,286.25,286.25,2742100 +2005-08-31,288.23,288.5,284.36,286,286,5034000 +2005-08-30,287.39,289.51,285.88,287.27,287.27,4792000 +2005-08-29,282.24,289.12,282.24,288.45,288.45,5903000 +2005-08-26,283.48,285.02,282.66,283.58,283.58,3755300 +2005-08-25,282.55,284,279.97,282.59,282.59,4376600 +2005-08-24,277.57,284.75,276.45,282.57,282.57,8593100 +2005-08-23,276.16,279.74,274.12,279.58,279.58,5821700 +2005-08-22,281.24,281.47,273.35,274.01,274.01,6813000 +2005-08-19,280.99,281.45,279.62,280,280,5542900 +2005-08-18,275.91,280.5,275,279.99,279.99,11872800 +2005-08-17,285.51,286.57,284,285.1,285.1,3883300 +2005-08-16,284.88,287.79,283.34,285.65,285.65,7109200 +2005-08-15,289.8,292.77,283.77,284,284,8174700 +2005-08-12,283.36,290.2,281.64,289.72,289.72,6585900 +2005-08-11,285.89,286.58,280.62,284.05,284.05,7514900 +2005-08-10,291.3,292.33,284.88,285.68,285.68,6879000 +2005-08-09,291.96,292.68,288.51,291.57,291.57,5779300 +2005-08-08,293.6,295.65,290.49,291.25,291.25,4481800 +2005-08-05,297.5,298.51,291.31,292.35,292.35,5939700 +2005-08-04,295.55,299,295.25,297.73,297.73,5236500 +2005-08-03,298,299.72,295.6,297.3,297.3,5930600 +2005-08-02,291.6,299.52,291.12,299.19,299.19,7290200 +2005-08-01,288.12,292.5,288.1,291.61,291.61,5662400 +2005-07-29,292.14,292.84,286.99,287.76,287.76,8363300 +2005-07-28,297.41,297.41,293.28,293.5,293.5,5925600 +2005-07-27,297.74,298.23,292.4,296.93,296.93,7217900 +2005-07-26,295.01,298,292.09,296.09,296.09,9816900 +2005-07-25,302.39,303.29,294.96,295.85,295.85,9658800 +2005-07-22,306.37,309.25,296.33,302.4,302.4,23386800 +2005-07-21,314.05,317.8,311.21,313.94,313.94,19789400 +2005-07-20,305.57,312.61,301.8,312,312,14310400 +2005-07-19,302.1,310.35,301.8,309.9,309.9,12621400 +2005-07-18,300,301.9,297.75,299.54,299.54,6207800 +2005-07-15,301.24,303.4,299.78,301.19,301.19,8438400 +2005-07-14,305.34,306.75,300.07,300.89,300.89,10667700 +2005-07-13,292.51,299.24,292.1,298.86,298.86,11437900 +2005-07-12,293.39,294.4,290.93,291.78,291.78,5864900 +2005-07-11,296.4,296.6,291.02,293.35,293.35,8390300 +2005-07-08,296.25,297.5,294.05,296.23,296.23,7457600 +2005-07-07,289.39,295.8,288.51,295.54,295.54,10672100 +2005-07-06,297.3,297.6,291.38,291.52,291.52,8000300 +2005-07-05,292.1,295.98,290.23,295.71,295.71,7494000 +2005-07-01,295.04,296.24,289.22,291.25,291.25,9227600 +2005-06-30,294.34,298.93,291.04,294.15,294.15,15094400 +2005-06-29,302.5,304.38,292.15,292.72,292.72,18298700 +2005-06-28,306.28,309.25,302,302,302,19036500 +2005-06-27,298.9,304.47,293.86,304.1,304.1,17802900 +2005-06-24,290.9,298,289.58,297.25,297.25,17771200 +2005-06-23,288,294.81,286.5,289.71,289.71,14056400 +2005-06-22,289.67,292.32,288.67,289.3,289.3,10474000 +2005-06-21,288.07,290.3,284.97,287.84,287.84,15132300 +2005-06-20,276.09,287.67,271.73,286.7,286.7,21024700 +2005-06-17,279,280.3,275.9,280.3,280.3,10434400 +2005-06-16,274.26,278.3,273.07,277.44,277.44,12462400 +2005-06-15,275,277.3,267.43,274.8,274.8,20883100 +2005-06-14,278.59,281.24,277.75,278.35,278.35,10091900 +2005-06-13,279.82,284.19,276.52,282.75,282.75,12803200 +2005-06-10,286.99,287.28,280.02,282.5,282.5,12696600 +2005-06-09,284.72,288.5,280.56,286.31,286.31,16441100 +2005-06-08,292.85,293.19,278,279.56,279.56,25700900 +2005-06-07,297.1,299.59,290.3,293.12,293.12,24323000 +2005-06-06,282.39,293.75,281.83,290.94,290.94,22525900 +2005-06-03,286.79,289.3,277.41,280.26,280.26,18782300 +2005-06-02,288.73,289.78,284.6,287.9,287.9,17974100 +2005-06-01,283.2,292.89,282.02,288,288,35191700 +2005-05-31,269.43,278.4,269.37,277.27,277.27,22236800 +2005-05-27,260.46,266.05,259.25,266,266,12184100 +2005-05-26,260.96,263.76,258.3,259.2,259.2,13546600 +2005-05-25,252.73,260.98,250.63,260.81,260.81,18057900 +2005-05-24,256.96,265.44,253.5,256,256,29043100 +2005-05-23,243.16,258.1,242.71,255.45,255.45,21388300 +2005-05-20,241.21,241.67,239.65,241.61,241.61,8163500 +2005-05-19,240.34,241.17,238.27,239.18,239.18,9716500 +2005-05-18,233.61,239.97,233.52,239.16,239.16,12312000 +2005-05-17,230.56,233.45,230.2,233.13,233.13,7808900 +2005-05-16,229.68,231.62,228.57,231.05,231.05,5681400 +2005-05-13,229.18,231.09,227.32,229.24,229.24,7415500 +2005-05-12,230.81,232.23,228.2,228.72,228.72,8948200 +2005-05-11,228.97,231.98,227.93,231.29,231.29,11478800 +2005-05-10,225.47,227.8,224.72,227.8,227.8,6345800 +2005-05-09,228,228.5,225.43,226.02,226.02,5536800 +2005-05-06,228.4,229.25,226.47,228.02,228.02,6763900 +2005-05-05,228.62,228.62,225.88,226.98,226.98,7509600 +2005-05-04,227.23,229.88,227,228.5,228.5,12083500 +2005-05-03,221.85,228.15,221.32,226.19,226.19,17780200 +2005-05-02,222.05,223.7,220.21,222.29,222.29,9767400 +2005-04-29,221.91,222.25,217.82,220,220,9170200 +2005-04-28,219.5,222.08,217.71,219.45,219.45,8682800 +2005-04-27,217.99,220.85,216.74,219.78,219.78,10264800 +2005-04-26,220.22,222,218.29,218.75,218.75,17272000 +2005-04-25,217.82,224.74,217.52,223.53,223.53,19840000 +2005-04-22,222.9,224,214.26,215.81,215.81,33205100 +2005-04-21,200.42,205,199.32,204.22,204.22,17751900 +2005-04-20,198.58,200.5,195.91,198.1,198.1,15451500 +2005-04-19,189.33,192,188.03,191.4,191.4,8430000 +2005-04-18,184.58,187.88,183.49,186.97,186.97,6550300 +2005-04-15,190.1,190.34,184.66,185,185,11577400 +2005-04-14,193.27,194.36,190.1,191.45,191.45,6152700 +2005-04-13,193.47,194.32,189.73,192.93,192.93,6555800 +2005-04-12,193,194.42,189.41,193.96,193.96,7319600 +2005-04-11,193.09,194.8,192.32,193.23,193.23,5410500 +2005-04-08,193.69,195.1,191.45,192.05,192.05,5116600 +2005-04-07,188.78,194.62,188.64,193.76,193.76,9692200 +2005-04-06,189.24,189.65,187.58,189.22,189.22,5252600 +2005-04-05,187.73,190.26,187.57,188.57,188.57,8736700 +2005-04-04,179.95,185.32,179.84,185.29,185.29,8076400 +2005-04-01,181.76,182.95,179.99,180.04,180.04,6182000 +2005-03-31,177.95,181.39,177.64,180.51,180.51,6768600 +2005-03-30,180.64,181.45,179.6,180.45,180.45,6236100 +2005-03-29,181.05,183.28,178.07,179.57,179.57,6473000 +2005-03-28,181.68,184.8,180.95,181.42,181.42,8738000 +2005-03-24,180.7,180.86,179.2,179.25,179.25,3705200 +2005-03-23,177.97,180.24,177.97,178.98,178.98,4845000 +2005-03-22,181.18,181.94,177.85,178.6,178.6,5631700 +2005-03-21,179.27,182.17,177.25,180.88,180.88,7483700 +2005-03-18,178.81,180.4,178.31,180.04,180.04,7090000 +2005-03-17,177.13,179.64,175.8,179.29,179.29,8260600 +2005-03-16,176.7,178.61,175.01,175.6,175.6,7106300 +2005-03-15,175.3,180,174.21,178.61,178.61,10422100 +2005-03-14,178.33,178.4,172.57,174.99,174.99,11146600 +2005-03-11,180.44,180.95,177.15,177.8,177.8,8028300 +2005-03-10,181.01,181.2,177.4,179.98,179.98,10960500 +2005-03-09,184.21,184.65,180.16,181.35,181.35,11360400 +2005-03-08,189.1,189.85,184.97,185.2,185.2,8046100 +2005-03-07,187.78,189.6,187.03,188.81,188.81,8667400 +2005-03-04,186.7,187.25,185.07,185.9,185.9,6774100 +2005-03-03,186.13,187.75,184.31,187.01,187.01,7608600 +2005-03-02,185.95,187.67,184.36,185.18,185.18,7285500 +2005-03-01,189.29,189.75,182,186.06,186.06,9311200 +2005-02-28,186,189.87,185.85,187.99,187.99,7818400 +2005-02-25,189.15,189.92,185.51,185.87,185.87,9973500 +2005-02-24,183.37,189.85,182.23,188.89,188.89,25814300 +2005-02-23,193.3,194.48,188.66,193.95,193.95,15586000 +2005-02-22,196.5,198.9,190.39,191.37,191.37,13483700 +2005-02-18,198.51,198.84,196.66,197.95,197.95,8485900 +2005-02-17,197.83,199.75,196.81,197.9,197.9,10414400 +2005-02-16,194.7,199.33,194.3,198.41,198.41,16532300 +2005-02-15,193.6,199.84,193.08,195.23,195.23,25782800 +2005-02-14,182.85,193.08,181,192.99,192.99,38562200 +2005-02-11,186.66,192.32,186.07,187.4,187.4,13116000 +2005-02-10,191.97,192.21,185.25,187.98,187.98,18982700 +2005-02-09,200.76,201.6,189.46,191.58,191.58,17171500 +2005-02-08,196.96,200.02,194.53,198.64,198.64,11480000 +2005-02-07,205.26,206.4,195.51,196.03,196.03,12960400 +2005-02-04,206.47,207.75,202.6,204.36,204.36,14819300 +2005-02-03,205.99,213.37,205.81,210.86,210.86,12988100 +2005-02-02,215.55,216.8,203.66,205.96,205.96,32799300 +2005-02-01,194.38,196.66,190.63,191.9,191.9,18839000 +2005-01-31,193.69,196.36,191.72,195.62,195.62,9596700 +2005-01-28,190.02,194.7,186.34,190.34,190.34,12208200 +2005-01-27,188.76,188.86,185.2,188.08,188.08,6627400 +2005-01-26,179.27,189.41,179.15,189.24,189.24,12307900 +2005-01-25,181.94,182.24,176.29,177.12,177.12,10659200 +2005-01-24,188.69,189.33,180.32,180.72,180.72,14022700 +2005-01-21,194.54,195.36,188.12,188.28,188.28,9258400 +2005-01-20,192.5,196.25,192,193.92,193.92,9001600 +2005-01-19,204.65,205.3,196.71,197.3,197.3,11257700 +2005-01-18,200.97,205.02,198.66,203.9,203.9,13172600 +2005-01-14,196,200.01,194.13,199.97,199.97,9640300 +2005-01-13,195.38,197.39,194.05,195.33,195.33,6849400 +2005-01-12,194.33,195.93,190.5,195.38,195.38,8177800 +2005-01-11,195.62,197.71,193.18,193.54,193.54,6958700 +2005-01-10,194.5,198.1,191.83,195.06,195.06,7539600 +2005-01-07,190.64,194.25,188.78,193.85,193.85,9662900 +2005-01-06,195.08,195.9,187.72,188.55,188.55,10387100 +2005-01-05,193.45,196.9,192.23,193.51,193.51,8236600 +2005-01-04,201.4,202.93,193.48,194.5,194.5,13755900 +2005-01-03,197.4,203.64,195.46,202.71,202.71,15844200 +2004-12-31,199.23,199.88,192.56,192.79,192.79,7668500 +2004-12-30,192.97,198.23,191.85,197.6,197.6,5904300 +2004-12-29,191.78,193.52,191.78,192.9,192.9,2678100 +2004-12-28,192.11,193.55,191.01,192.76,192.76,4145800 +2004-12-27,189.15,193.3,189.1,191.91,191.91,6104100 +2004-12-23,187.45,188.6,186,187.9,187.9,3614600 +2004-12-22,183.9,186.85,183.01,186.3,186.3,3907000 +2004-12-21,186.31,187.88,183.4,183.75,183.75,5516300 +2004-12-20,182,188.46,181.87,185.02,185.02,9834500 +2004-12-17,176.76,180.5,176.55,180.08,180.08,7386200 +2004-12-16,176.95,180.49,175.95,176.47,176.47,8572800 +2004-12-15,177.99,180.69,176.66,179.78,179.78,11471000 +2004-12-14,171,178.82,169.6,178.69,178.69,11088400 +2004-12-13,172.17,173.18,169.45,170.45,170.45,4818600 +2004-12-10,173.43,174.88,171.29,171.65,171.65,4317200 +2004-12-09,170.25,173.5,168.47,173.43,173.43,7654000 +2004-12-08,170.35,173.68,168.73,169.98,169.98,7541800 +2004-12-07,176,176.2,170.55,171.43,171.43,6870900 +2004-12-06,179.13,180.7,176.02,176.29,176.29,6254000 +2004-12-03,179.95,181.06,177.6,180.4,180.4,5869200 +2004-12-02,179.9,181.51,178.55,179.4,179.4,6260900 +2004-12-01,181.95,182.5,179.55,179.96,179.96,7864100 +2004-11-30,180.71,183,180.25,181.98,181.98,7700000 +2004-11-29,180.36,182.95,177.51,181.05,181.05,10666600 +2004-11-26,175.8,180.03,175.32,179.39,179.39,6480100 +2004-11-24,174.82,177.21,172.51,174.76,174.76,15281000 +2004-11-23,167.97,170.83,166.5,167.52,167.52,12413300 +2004-11-22,164.47,169.5,161.31,165.1,165.1,12368200 +2004-11-19,169.1,169.98,166.52,169.4,169.4,8769300 +2004-11-18,170.29,174.42,165.73,167.54,167.54,16629600 +2004-11-17,169.02,177.5,169,172.5,172.5,18132900 +2004-11-16,177.5,179.47,170.83,172.54,172.54,20917400 +2004-11-15,180.45,188.32,178.75,184.87,184.87,11901500 +2004-11-12,185.23,189.8,177.4,182,182,16746100 +2004-11-11,169.13,183.75,167.57,183.02,183.02,14985500 +2004-11-10,170.67,172.52,166.33,167.86,167.86,10644000 +2004-11-09,174.1,175.2,165.27,168.7,168.7,11064200 +2004-11-08,170.93,175.44,169.4,172.55,172.55,11191800 +2004-11-05,181.98,182.3,168.55,169.35,169.35,19833100 +2004-11-04,188.44,190.4,183.35,184.7,184.7,14409600 +2004-11-03,198.18,201.6,190.75,191.67,191.67,13888700 +2004-11-02,198.78,199.25,193.34,194.87,194.87,11346300 +2004-11-01,193.55,197.67,191.27,196.03,196.03,12224900 +2004-10-29,198.89,199.95,190.6,190.64,190.64,21162500 +2004-10-28,186.68,194.39,185.6,193.3,193.3,14846800 +2004-10-27,182.72,189.52,181.77,185.97,185.97,13356500 +2004-10-26,186.34,192.64,180,181.8,181.8,22307100 +2004-10-25,176.4,194.43,172.55,187.4,187.4,32764200 +2004-10-22,170.54,180.17,164.08,172.43,172.43,36891900 +2004-10-21,144.4,150.13,141.62,149.38,149.38,14589500 +2004-10-20,148.03,148.99,139.6,140.49,140.49,11372700 +2004-10-19,150.5,152.4,147.35,147.94,147.94,9064000 +2004-10-18,143.2,149.2,141.21,149.16,149.16,7025200 +2004-10-15,144.93,145.5,141.95,144.11,144.11,6604000 +2004-10-14,141.01,142.38,138.56,142,142,5226300 +2004-10-13,143.32,143.55,140.08,140.9,140.9,9893000 +2004-10-12,134.44,137.61,133.4,137.4,137.4,5838600 +2004-10-11,137,138.86,133.85,135.26,135.26,5241300 +2004-10-08,138.72,139.68,137.02,137.73,137.73,5540300 +2004-10-07,136.92,139.88,136.55,138.85,138.85,7064600 +2004-10-06,137.55,138.45,136,137.08,137.08,6697400 +2004-10-05,134.66,138.53,132.24,138.37,138.37,7494100 +2004-10-04,135.25,136.87,134.03,135.06,135.06,6517900 +2004-10-01,130.8,134.24,128.9,132.58,132.58,7570000 +2004-09-30,129.9,132.3,129,129.6,129.6,6885900 +2004-09-29,126.7,135.02,126.23,131.08,131.08,15273500 +2004-09-28,121.3,127.4,120.21,126.86,126.86,8473000 +2004-09-27,119.56,120.88,117.8,118.26,118.26,3536600 +2004-09-24,120.94,124.1,119.76,119.83,119.83,4566300 +2004-09-23,118.84,122.63,117.02,120.82,120.82,4272100 +2004-09-22,117.4,119.67,116.81,118.38,118.38,3794400 +2004-09-21,119.81,120.42,117.51,117.84,117.84,3618000 +2004-09-20,116.95,121.6,116.77,119.36,119.36,5319700 +2004-09-17,114.42,117.49,113.55,117.49,117.49,4741000 +2004-09-16,112.34,115.8,111.65,113.97,113.97,4637800 +2004-09-15,110.56,114.23,110.2,112,112,5361900 +2004-09-14,107.45,112,106.79,111.49,111.49,5419900 +2004-09-13,106.63,108.41,106.46,107.5,107.5,3926000 +2004-09-10,101.6,106.56,101.3,105.33,105.33,4353800 +2004-09-09,102.53,102.71,101,102.31,102.31,2032900 +2004-09-08,100.74,103.03,100.5,102.3,102.3,2495300 +2004-09-07,101.01,102,99.61,101.58,101.58,2926700 +2004-09-03,100.95,101.74,99.32,100.01,100.01,2578800 +2004-09-02,99.19,102.37,98.94,101.51,101.51,7566900 +2004-09-01,102.7,102.97,99.67,100.25,100.25,4573700 +2004-08-31,102.3,103.71,102.16,102.37,102.37,2461400 +2004-08-30,105.28,105.49,102.01,102.01,102.01,2601000 +2004-08-27,108.1,108.62,105.69,106.15,106.15,3109000 +2004-08-26,104.95,107.95,104.66,107.91,107.91,3551000 +2004-08-25,104.96,108,103.88,106,106,4598900 +2004-08-24,111.24,111.6,103.57,104.87,104.87,7631300 +2004-08-23,110.75,113.48,109.05,109.4,109.4,9137200 +2004-08-20,101.01,109.08,100.5,108.31,108.31,11428600 +2004-08-19,100,104.06,95.96,100.34,100.34,22351900 \ No newline at end of file diff --git a/jupyter/jupyter-helloworld/helloworld-requests.ipynb b/jupyter/jupyter-helloworld/helloworld-requests.ipynb new file mode 100644 index 0000000..f3407a5 --- /dev/null +++ b/jupyter/jupyter-helloworld/helloworld-requests.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "b6bf609f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: requests in /root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.10/site-packages (2.28.1)\n", + "Requirement already satisfied: charset-normalizer<3,>=2 in /root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.10/site-packages (from requests) (2.1.1)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.10/site-packages (from requests) (1.26.13)\n", + "Requirement already satisfied: idna<4,>=2.5 in /root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.10/site-packages (from requests) (3.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.10/site-packages (from requests) (2022.9.24)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install requests" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9b24b4df", + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "r = requests.get('https://www.example.com')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1cc7f2dc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a6bd95b7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goog.csv\n", + "Goog.csv\n" + ] + } + ], + "source": [ + "a = input()\n", + "print(a)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter/jupyter-helloworld/helloworld.ipynb b/jupyter/jupyter-helloworld/helloworld.ipynb new file mode 100644 index 0000000..bfb7c6e --- /dev/null +++ b/jupyter/jupyter-helloworld/helloworld.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "b6bf609f", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install requests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b24b4df", + "metadata": {}, + "outputs": [], + "source": [ + "r = requests.get('https://www.example.com')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1cc7f2dc", + "metadata": {}, + "outputs": [], + "source": [ + "r.status_code" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter/jupyter-helloworld/init.sh b/jupyter/jupyter-helloworld/init.sh new file mode 100644 index 0000000..3e19ee3 --- /dev/null +++ b/jupyter/jupyter-helloworld/init.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -ex + +pipenv install jupyter +pipenv install jupyter notebook + +pipenv install pandas +pipenv install quandl + +pipenv install seaborn +pipenv install scikit-learn + +# jupyter-notebook + diff --git a/jupyter/jupyter-helloworld/journal.md b/jupyter/jupyter-helloworld/journal.md new file mode 100644 index 0000000..d866f17 --- /dev/null +++ b/jupyter/jupyter-helloworld/journal.md @@ -0,0 +1,27 @@ +### to spin up dev environment + +``` +./start_docker.sh + +// inside docker + +./dev.sh + +open host browser: +http://127.0.0.1:8888/?token=98ab80de026fe83fd8e03c8e344b31e7575ec4a084c59f21 + +``` + +### to develop + + +start from fresh python docker image + +``` +./start_docker.sh + +./init.sh +``` + + + diff --git a/jupyter/jupyter-helloworld/start_docker.sh b/jupyter/jupyter-helloworld/start_docker.sh new file mode 100644 index 0000000..3bfde43 --- /dev/null +++ b/jupyter/jupyter-helloworld/start_docker.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -ex + +docker run -it \ + -v $PWD:/app \ + -w /app \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v ~/.ssh/id_rsa:/home/node/.ssh/id_rsa:ro \ + -v ~/.ssh/known_host:/home/node/.ssh/known_hosts:ro \ + -p 8888:8888 \ + --rm \ + python:3.10 \ + bash + + # -u 1000:1000 \ + # -e XDG_CACHE_HOME=/app/.cache \ diff --git a/meta.md b/meta.md new file mode 100644 index 0000000..ac3e0bc --- /dev/null +++ b/meta.md @@ -0,0 +1,8 @@ +--- +tags: [python, jupyter, INT3075] +--- + +# hyhl_1022 + +[[1st_copy/NOTES]] +[[2nd_copy/NOTES]] diff --git a/notes/L10_de3593a46818cfaeab73dcada2b3b55d.pdf b/notes/L10_de3593a46818cfaeab73dcada2b3b55d.pdf new file mode 100644 index 0000000..eb725de Binary files /dev/null and b/notes/L10_de3593a46818cfaeab73dcada2b3b55d.pdf differ diff --git a/notes/L11_2f280c974cd98e55e99bce9c98bbfe9a.pdf b/notes/L11_2f280c974cd98e55e99bce9c98bbfe9a.pdf new file mode 100644 index 0000000..4dafb05 Binary files /dev/null and b/notes/L11_2f280c974cd98e55e99bce9c98bbfe9a.pdf differ diff --git a/notes/L12_2723aaec2763c65c74f58f07f7642d64.pdf b/notes/L12_2723aaec2763c65c74f58f07f7642d64.pdf new file mode 100644 index 0000000..764e995 Binary files /dev/null and b/notes/L12_2723aaec2763c65c74f58f07f7642d64.pdf differ diff --git a/notes/L1_a7e95e0c362838158c2046f03f053d4e.pdf b/notes/L1_a7e95e0c362838158c2046f03f053d4e.pdf new file mode 100644 index 0000000..f90a700 Binary files /dev/null and b/notes/L1_a7e95e0c362838158c2046f03f053d4e.pdf differ diff --git a/notes/L2_321f978b6dc2b53b5571367ee15eaa55.pdf b/notes/L2_321f978b6dc2b53b5571367ee15eaa55.pdf new file mode 100644 index 0000000..c5e77b8 Binary files /dev/null and b/notes/L2_321f978b6dc2b53b5571367ee15eaa55.pdf differ diff --git a/notes/L3_d51717b8872516d09fdb3b4bb7c838e0.pdf b/notes/L3_d51717b8872516d09fdb3b4bb7c838e0.pdf new file mode 100644 index 0000000..a96b6db Binary files /dev/null and b/notes/L3_d51717b8872516d09fdb3b4bb7c838e0.pdf differ diff --git a/notes/L4_7ceb50fbff6a5422307dd3019b8ed0f5.pdf b/notes/L4_7ceb50fbff6a5422307dd3019b8ed0f5.pdf new file mode 100644 index 0000000..77dbc76 Binary files /dev/null and b/notes/L4_7ceb50fbff6a5422307dd3019b8ed0f5.pdf differ diff --git a/notes/L5_133c673a1e8f5762b468b6da6b955f1f.pdf b/notes/L5_133c673a1e8f5762b468b6da6b955f1f.pdf new file mode 100644 index 0000000..dacfcfc Binary files /dev/null and b/notes/L5_133c673a1e8f5762b468b6da6b955f1f.pdf differ diff --git a/notes/L6_a3eb6c2274b17ddb27e15625ce3dfae9.pdf b/notes/L6_a3eb6c2274b17ddb27e15625ce3dfae9.pdf new file mode 100644 index 0000000..db1bc7e Binary files /dev/null and b/notes/L6_a3eb6c2274b17ddb27e15625ce3dfae9.pdf differ diff --git a/notes/L7_30fa398bf3a835b43ca63cc6e73be6f4.pdf b/notes/L7_30fa398bf3a835b43ca63cc6e73be6f4.pdf new file mode 100644 index 0000000..b8e2a97 Binary files /dev/null and b/notes/L7_30fa398bf3a835b43ca63cc6e73be6f4.pdf differ diff --git a/notes/L8_48628cf6525035038e31c9a470438331.pdf b/notes/L8_48628cf6525035038e31c9a470438331.pdf new file mode 100644 index 0000000..f345208 Binary files /dev/null and b/notes/L8_48628cf6525035038e31c9a470438331.pdf differ diff --git a/notes/L9_a2c0a3b7282f64d9a7f4bfe3d3355abe.pdf b/notes/L9_a2c0a3b7282f64d9a7f4bfe3d3355abe.pdf new file mode 100644 index 0000000..4203f86 Binary files /dev/null and b/notes/L9_a2c0a3b7282f64d9a7f4bfe3d3355abe.pdf differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..a72e03f --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "notes", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "gitUpdate": "git add . && git commit -m \"update,\" && git pull && git push" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/screen_capture/HuivQquzDj.png b/screen_capture/HuivQquzDj.png new file mode 100644 index 0000000..add9ee8 --- /dev/null +++ b/screen_capture/HuivQquzDj.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d1f1860333e833a63b33288b534ec8ec6e638af8351ad6a9519167bebea7fe3 +size 164808 diff --git a/screen_capture/Screenshot from 2022-12-19 15-19-40.png b/screen_capture/Screenshot from 2022-12-19 15-19-40.png new file mode 100644 index 0000000..d7180b5 --- /dev/null +++ b/screen_capture/Screenshot from 2022-12-19 15-19-40.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:275c5bbaa5ca21e53918af76e293e705196fb675ff786438b7a751d0b86ff2a0 +size 406650 diff --git a/screen_capture/steps/google-colab-create-notebook.png b/screen_capture/steps/google-colab-create-notebook.png new file mode 100644 index 0000000..330d605 --- /dev/null +++ b/screen_capture/steps/google-colab-create-notebook.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:294ad91f13ba0d8b4ab090bf50a2f91c259668833f7be4cf314375948e30cc59 +size 51724 diff --git a/screen_capture/steps/google-colab-enable-share.png b/screen_capture/steps/google-colab-enable-share.png new file mode 100644 index 0000000..e2d2c6f --- /dev/null +++ b/screen_capture/steps/google-colab-enable-share.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:149634caabb87ae947631a5b7eb73bb77fa91ee6c9ae115324efffe592f3059d +size 63362 diff --git a/screen_capture/steps/wa3SkZ5QU1.png b/screen_capture/steps/wa3SkZ5QU1.png new file mode 100644 index 0000000..73cc7aa --- /dev/null +++ b/screen_capture/steps/wa3SkZ5QU1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d35f296360934dbb6d76fbd5965f7e949e0f5b28bb9f7961e79cea9eb9e60be3 +size 24558