diff --git a/sample_for_plotting/css/finance.css b/sample_for_plotting/css/finance.css
new file mode 100644
index 0000000..60cc0eb
--- /dev/null
+++ b/sample_for_plotting/css/finance.css
@@ -0,0 +1,105 @@
+.title {
+ text-align: center;
+}
+.subTitle {
+ font-size: 16px;
+}
+
+#finance {
+ position: relative;
+ margin: 40px 0px;
+ border: 1px solid #99CCFF;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+}
+
+#labels {
+ position: absolute;
+ width: 800px;
+ z-index: 10;
+}
+#financeTitle {
+ position: absolute;
+ top: -20px;
+}
+#time {
+ position: absolute;
+ left: 4px;
+ top: 4px;
+ font-size: 10px;
+ z-index: 10;
+}
+#time a {
+ background: #ffffff;
+ cursor: pointer;
+ border-right: 2px solid transparent;
+ color: #4499FF;
+ text-decoration: underline;
+}
+#dateRange {
+ position: absolute;
+ right: 4px;
+ top: -14px;
+ font-size: 10px;
+}
+.handle {
+ position: absolute;
+ z-index: 10;
+ cursor: pointer;
+ background: #eeeeee;
+ border: 1px solid #bbbbbb;
+ border-radius: 3px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+}
+.zoomHandle {
+ width: 5px;
+ height: 20px;
+}
+.scrollHandle {
+ width: 100px;
+ height: 12px;
+}
+.flag {
+ border: 1px solid #4499FF;
+ background: white;
+ padding: 1px 2px 1px 2px;
+}
+.flagpole {
+ border-left: 1px solid #4499FF;
+}
+.flotr-grid-label {
+ font-size: 11px;
+ background: #ffffff;
+ margin: 2px 0px 0px 4px;
+}
+.flotr-mouse-value {
+ font-size: 10px;
+}
+#summaryGraph .flotr-grid-label {
+ margin-top: -16px;
+ background: transparent;
+ text-align: left;
+}
+.documentation p {
+ font-size: 14px;
+ padding-left: 20px;
+ padding-right: 8px;
+}
+.documentation ol {
+ font-size: 14px;
+}
+.documentation h3 {
+ padding-top: 12px;
+}
+.documentation h4 {
+ padding-left: 20px;
+ font-size: 14px;
+}
+.documentation p code {
+ font-size: 12px;
+}
+.documentation .snippet {
+ margin-left: 20px;
+}
diff --git a/sample_for_plotting/css/hsd.css b/sample_for_plotting/css/hsd.css
new file mode 100644
index 0000000..d4c2312
--- /dev/null
+++ b/sample_for_plotting/css/hsd.css
@@ -0,0 +1 @@
+@CHARSET "UTF-8";body,html{height:100%}body{background:#fff;color:#333;font-family:'Lucida Grande','Lucida Sans Unicode',Helvetica,Arial,Verdana,sans-serif;padding:0;margin:0}a{border:none;color:#333}a:hover{color:#000}a:focus{outline:none}ul{margin:0;padding:0}li{list-style:none}h2{font-size:1.2em}h3{font-size:1em}table{border-spacing:0}fieldset{padding:0;margin:0;border:none}#header-container,#links-container,#content-container,#footer-container{width:800px;margin:0 auto}#header{font-size:32px;text-shadow:2px 2px 0 #e0e0e0;border-bottom:2px solid #333;padding:16px 4px 0 4px}#links{font-size:14px;text-align:right;font-weight:bold}#links a{text-decoration:none}#links li{display:inline-block;padding:4px 9px 5px 9px;margin:0 4px;*display:inline}#links li.current-page{background:#3a3a3a;border-bottom-left-radius:2px;border-bottom-right-radius:2px}#links li.current-page span{color:#f5f5f5}#content{margin:0 0 22px 0;margin-top:24px}#footer-container{border-top:2px solid #333;z-index:100;clear:both;bottom:0;left:0}#footer{padding:6px 8px;font-size:.8em;text-align:center}#footer a{text-decoration:none}#footer .footer-text{float:left}#footer .footer-links{float:right}#footer .footer-links li{display:inline-block;padding-left:10px}.home p.summary{text-indent:2em;font-size:17px}.home .project{width:360px;float:right;margin:0 6px 28px 20px;position:relative;overflow:hidden}.home .project .title{position:absolute;left:0;top:0}.home .project .icon{margin-left:8px;float:right}.home .project .icon img{border:1px solid #ddd}.home .project .description{display:block;margin-top:32px;font-size:14px}.home .footer{clear:both}.home .projects-list{overflow:hidden;background-position:center 0}.projects .project{overflow:hidden;margin:0 0 40px 16px}.projects .project .title{font-size:18px;font-weight:bold}.projects .project .description{display:block;border-left:2px solid #444;padding-left:16px;margin-left:2px;margin-top:12px}.projects .icon img{border:1px solid #ddd}.projects .icon{float:right;width:200px;text-align:center}a.project-flotr-demo-link{border:0;text-decoration:none}.project.feature{width:auto;float:none;margin-bottom:32px}.project.feature .title{position:static;font-weight:bold}.project.feature .title span{font-weight:normal;float:right}.project.feature .description{margin-top:8px}#envision-demo{height:379px}#envision-demo .envision-finance{margin:14px auto 0 auto}.project.wide .description{border:none;padding-left:0}.project.wide li{margin-left:40px;list-style:circle}.project.wide .features{float:left}.project-flotr-demo{cursor:pointer!important}.projects .project.wide{position:relative;height:400px}.projects .project-flotr-demo{width:480px;height:320px;position:absolute;right:0;margin:20px 24px 0 0}.projects .project-flotr-demo>div{position:absolute!important;width:480px;height:320px}.home .project-flotr-demo{width:328px;height:224px;position:absolute;left:50%;margin:14px 0 2px -164px}.home .project-flotr-demo>div{position:absolute!important;width:328px;height:224px}.home .project-flotr-demo-link{display:block;margin:14px 0;height:224px}.home .project.wide{padding-bottom:12px;float:left;overflow:visible}.home .project.wide li{font-size:14px}.project.wide .flotr-mouse-value{font-size:14px}form{margin-left:16px}.contact h3.feedback{margin-top:36px}.contact .label,label{float:left;display:block;margin-top:2px;width:90px;float:left}input{margin-bottom:8px;width:240px}textarea{width:600px;height:320px}#submit{border:1px solid #333;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;background:#fff;font-size:18px;width:auto;margin:6px 0 0 90px;padding:6px 9px 4px 9px}span.label{margin-left:16px}.errors{color:#e00}#recaptcha_widget_div{margin-left:90px}#recaptcha_widget_div .recaptchatable{border:1px solid #000!important}.listing .toggle{font-weight:normal;font-size:12px;color:#777;float:right;cursor:pointer}.listing .file{font-family:monospace;font-size:1.2em}.snippet{padding:0 0 3px 6px;padding-left:20px;margin-left:16px;background:url(../home/cesutherland/HSD/images/leftshadow.gif) repeat-y}.snippet code{white-space:pre;text-align:left}.summary{padding:16px 24px;margin:20px 60px;border:1px solid #acf;border-radius:24px;-moz-border-radius:24px;-webkit-border-radius:24px;text-align:justify}@media screen and (max-width:1000px){#github-ribbon{display:none}}@media screen and (max-width:800px){input{width:auto}textarea{width:100%}#header-container,#links-container,#content-container,#footer-container{width:auto}#header{text-align:center;padding:0 4px}#links{text-align:center;font-size:10px}#links li{margin:0;padding:4px 5px 5px 5px}#content{padding:4px;margin:0}#footer .footer-text,#footer .footer-links{float:center}#footer .footer-links li{padding:0 5px}.summary{margin:12px 4px 4px;padding:10px;border-radius:24px;-moz-border-radius:12px;-webkit-border-radius:12px}#envision-demo{padding:0 30px;height:auto;margin-bottom:20px}.home .project{float:none;margin:10px 0 20px 0;width:auto}.project.feature .title{text-align:center}.project.feature .title span{display:block;float:none}.home .project.wide{float:none}.project.wide .features{margin-top:24px;float:none}.home .project.wide .description{margin-top:8px}.home p.summary{font-size:14px}.home .project-flotr-demo{width:100%;height:224px;left:0;margin:14px 0 2px 0;padding:0 20px}.home .project-flotr-demo>div{width:80%;height:224px}.home .project.wide .title{position:static}.projects .project{margin:10px 0 20px 0}#flotr-demo{padding:0 40px}.projects .project-flotr-demo{left:0;width:100%;height:224px;margin:16px 0 0 0;padding:0 20px}.projects .project-flotr-demo>div{height:224px}.projects .project.wide{height:auto}.projects .project-flotr-demo-link{display:block;height:240px}}.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#fff}.btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px}.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#ee5f5b),to(#c43c35));background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ee5f5b),color-stop(100%,#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#62c462),to(#57a957));background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#62c462),color-stop(100%,#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#5bc0de),to(#339bb9));background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#5bc0de),color-stop(100%,#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),color-stop(25%,#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#fff 25%,#e6e6e6);background-image:-ms-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-o-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:linear-gradient(#fff,#fff 25%,#e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255,255,255,0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-ms-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none}.btn:focus{outline:1px dotted #666}.btn.primary{color:#fff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#049cdb),to(#0064cd));background-image:-moz-linear-gradient(top,#049cdb,#0064cd);background-image:-ms-linear-gradient(top,#049cdb,#0064cd);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#049cdb),color-stop(100%,#0064cd));background-image:-webkit-linear-gradient(top,#049cdb,#0064cd);background-image:-o-linear-gradient(top,#049cdb,#0064cd);background-image:linear-gradient(top,#049cdb,#0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb',endColorstr='#0064cd',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.active,.btn:active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn.small{padding:7px 9px 7px;font-size:11px}:root .alert-message,:root .btn{border-radius:0 \0}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/sample_for_plotting/index.html b/sample_for_plotting/index.html
new file mode 100644
index 0000000..f875a15
--- /dev/null
+++ b/sample_for_plotting/index.html
@@ -0,0 +1,50 @@
+
+
+
+HTML5互动股票图形数据 - 站长素材
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.
+
来源:站长素材
+
+
+
+
diff --git a/sample_for_plotting/js/Finance.js b/sample_for_plotting/js/Finance.js
new file mode 100644
index 0000000..121a1a9
--- /dev/null
+++ b/sample_for_plotting/js/Finance.js
@@ -0,0 +1,25 @@
+/*
+(function () {
+
+var HSD = {
+
+*/
+ function toggleSnippet(button, snippet) {
+
+
+ if (Element.visible(snippet)) {
+ Element.update(button, '(show)');
+ } else {
+ Element.update(button, '(hide)');
+ }
+
+ Element.toggle(snippet);
+ }
+prettyPrint();
+/*
+}
+
+window.HSD = HSD;
+
+})();
+*/
diff --git a/sample_for_plotting/js/HumbleFinance.js b/sample_for_plotting/js/HumbleFinance.js
new file mode 100644
index 0000000..b2c5872
--- /dev/null
+++ b/sample_for_plotting/js/HumbleFinance.js
@@ -0,0 +1,701 @@
+////////////////////////////////////////////////////////////////////
+// Copyright (c) 2010 Humble Software Development
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+////////////////////////////////////////////////////////////////////
+
+/**
+ * HumbleFinance Flotr Financial Charts
+ *
+ * @license MIT License
+ * @author Carl Sutherland
+ * @version 1.1.0
+ */
+var HumbleFinance = {
+
+ /**
+ * ID of element to attach chart
+ *
+ * @member String
+ */
+ id: null,
+ /**
+ * Graphs used to display data
+ *
+ * @member Object
+ */
+ graphs: {price: null, volume: null, summary: null},
+ /**
+ * Div containers for graphs
+ *
+ * @member Object
+ */
+ containers: {price: null, volume: null, summary: null, flags: null},
+ /**
+ * Div handles for interaction with graphs
+ *
+ * @member Object
+ */
+ handles: {left: null, right: null, scroll: null},
+ /**
+ * Bounds on data
+ *
+ * @member Object
+ */
+ bounds: {xmin: null, xmax: null, ymin: null, ymax: null},
+ /**
+ * Array of data displayed in first graph.
+ *
+ * @member Array
+ */
+ priceData: [],
+ /**
+ * Array of data displayed in second graph
+ *
+ * @member Array
+ */
+ volumeData: [],
+ /**
+ * Array of data to serve as a visual summary of the above graphs
+ *
+ * @member Array
+ */
+ summaryData: [],
+ /**
+ * An array of data to be used to display flags.
+ *
+ * @member Array
+ */
+ flagData: [],
+ /**
+ * Formatter for x axis ticks
+ *
+ * @member function
+ */
+ xTickFormatter: Flotr.defaultTickFormatter,
+ /**
+ * Formatter for y axis ticks
+ *
+ * @member function
+ */
+ yTickFormatter: Flotr.defaultTickFormatter,
+ /**
+ * Formatter for mouse tracking
+ *
+ * @member function
+ */
+ trackFormatter: Flotr.defaultTrackFormatter,
+
+
+ /**
+ * Initialization function
+ *
+ * @param String id
+ * @param Array priceData
+ * @param Array volumeData
+ * @param Array summaryData
+ */
+ init: function(id, priceData, volumeData, summaryData) {
+
+ // Set members
+ this.id = id;
+ this.priceData = priceData;
+ this.volumeData = volumeData;
+ this.summaryData = summaryData;
+
+ // Set bounds to scale automatically in the y direction
+ this.bounds.xmin = 0;
+ this.bounds.xmax = this.priceData.length - 1;
+ this.bounds.ymin = null;
+ this.bounds.ymax = null;
+
+ // Set up DOM
+ this.buildDOM();
+ this.attachEventObservers();
+
+ // Initialize graphs, setting selection on summary
+ var area = {
+ x1: this.bounds.xmin,
+ y1: this.bounds.ymin,
+ x2: Math.min(this.bounds.xmax, 100),
+ y2: this.bounds.ymax
+ };
+ this.graphs.summary = this.summaryGraph(this.summaryData, this.bounds);
+ this.graphs.summary.setSelection(area);
+ },
+
+ /**
+ * Build DOM elements and insert into container.
+ */
+ buildDOM: function () {
+
+ var container = $(this.id);
+
+ // Build DOM element
+ this.containers.price = new Element('div', {id: 'priceGraph', style: 'width: 100%; height: 240px;'});
+ this.containers.volume = new Element('div', {id: 'volumeGraph', style: 'width: 100%; height: 80px;'});
+ this.containers.summary = new Element('div', {id: 'summaryGraph', style: 'width: 100%; height: 60px;'});
+ this.containers.flags = new Element('div', {id: 'flagContainer'/*, style: 'width: 0px; height: 0px;'*/});
+ this.handles.left = new Element('div', {id: 'leftHandle', 'class': 'handle zoomHandle', style: 'display: none;'});
+ this.handles.right = new Element('div', {id: 'rightHandle', 'class': 'handle zoomHandle', style: 'display: none;'});
+ this.handles.scroll = new Element('div', {id: 'scrollHandle', 'class': 'handle scrollHandle', style: 'display: none;'});
+
+ this.handles.left.onselectstart = function () { return false; };
+ this.handles.right.onselectstart = function () { return false; };
+ this.handles.scroll.onselectstart = function () { return false; };
+
+ // Insert into container
+ container.insert(this.containers.price);
+ container.insert(this.containers.volume);
+ container.insert(this.containers.summary);
+ container.insert(this.containers.flags);
+ container.insert(this.handles.left);
+ container.insert(this.handles.right);
+ container.insert(this.handles.scroll);
+ },
+
+ /**
+ * Attach event observers
+ */
+ attachEventObservers: function() {
+
+ // Attach summary click event to clear selection
+ Event.observe(this.containers.summary, 'flotr:click', this.reset.bind(this));
+
+ // Attach observers for hit tracking on price and volume points
+ Event.observe(this.containers.volume, 'flotr:hit', this.volumeHitObserver.bind(this));
+ Event.observe(this.containers.volume, 'flotr:clearhit', this.clearHit.bind(this));
+ Event.observe(this.containers.price, 'flotr:hit', this.priceHitObserver.bind(this));
+ Event.observe(this.containers.price, 'flotr:clearhit', this.clearHit.bind(this));
+
+ // Handle observers
+ Event.observe(this.containers.summary, 'flotr:select', this.positionScrollHandle.bind(this));
+ Event.observe(this.containers.summary, 'flotr:select', this.positionZoomHandles.bind(this));
+ Event.observe(this.handles.left, 'mousedown', this.zoomObserver.bind(this));
+ Event.observe(this.handles.right, 'mousedown', this.zoomObserver.bind(this));
+ Event.observe(this.handles.scroll, 'mousedown', this.scrollObserver.bind(this));
+
+ // On manual selection, hide zoom and scroll handles
+ Event.observe(this.containers.summary, 'mousedown', this.hideSelection.bind(this));
+
+ // Attach summary selection event to redraw price and volume charts
+ Event.observe(this.containers.summary, 'flotr:select', this.selectObserver.bind(this));
+ },
+
+ /**
+ * Summary Graph Selection Observer
+ *
+ * @param e MouseEvent
+ */
+ selectObserver: function (e) {
+
+ var area = e.memo[0];
+ xmin = Math.floor(area.x1);
+ xmax = Math.ceil(area.x2);
+
+ var newBounds = {'xmin': xmin, 'xmax': xmax, 'ymin': null, 'ymax': null};
+
+ this.graphs.price = this.priceGraph(this.priceData.slice(xmin, xmax+1), newBounds);
+ this.graphs.volume = this.volumeGraph(this.volumeData.slice(xmin, xmax+1), newBounds);
+
+ this.drawFlags();
+ },
+
+ /**
+ * Reset to null selection
+ */
+ reset: function () {
+ this.graphs.price = this.priceGraph(this.priceData, this.bounds);
+ this.graphs.volume = this.volumeGraph(this.volumeData, this.bounds);
+ this.handles.left.hide();
+ this.handles.right.hide();
+ this.handles.scroll.hide();
+
+ this.drawFlags();
+ },
+
+ /**
+ * Hide selection and handles
+ */
+ hideSelection: function () {
+
+ // Hide handles
+ this.handles.left.hide();
+ this.handles.right.hide();
+ this.handles.scroll.hide();
+
+ // Clear selection
+ this.graphs.summary.clearSelection();
+ },
+
+ /**
+ * Set the position of the scroll handle
+ *
+ * @param e MouseEvent
+ */
+ positionScrollHandle: function (e) {
+
+ var x1 = e.memo[0].x1;
+ var x2 = e.memo[0].x2;
+ var xaxis = e.memo[1].axes.x;
+ var plotOffset = e.memo[1].plotOffset;
+ var graphOffset = this.containers.summary.positionedOffset();
+ var graphHeight = this.containers.summary.getHeight();
+ var height = this.handles.scroll.getHeight();
+
+ // Set width
+ var width = Math.floor(xaxis.d2p(x2) - xaxis.d2p(x1)) + 8;
+ width = (width < 10) ? 18 : width;
+
+ // Set positions
+ var xPosLeft = Math.floor(graphOffset[0] + plotOffset.left + xaxis.d2p(x1) + (xaxis.d2p(x2) - xaxis.d2p(x1) - width)/2);
+ var yPos = Math.ceil(graphOffset[1] + graphHeight - 2);
+
+ this.handles.scroll.setStyle({position: 'absolute', left: xPosLeft+'px', top: yPos+'px', width: width+'px'});
+ this.handles.scroll.show();
+ },
+
+ /**
+ * Begin scrolling observer
+ *
+ * @param e MouseEvent
+ */
+ scrollObserver: function (e) {
+
+ var x = e.clientX;
+ var offset = this.handles.scroll.cumulativeOffset();
+ var prevSelection = this.graphs.summary.prevSelection;
+
+ /**
+ * Perform scroll on handle move, observer
+ *
+ * @param e MouseEvent
+ */
+ var handleObserver = function (e) {
+
+ Event.stopObserving(document, 'mousemove', handleObserver);
+
+ var deltaX = e.clientX - x;
+ var xAxis = this.graphs.summary.axes.x;
+
+ var x1 = xAxis.p2d(Math.min(prevSelection.first.x, prevSelection.second.x) + deltaX);
+ var x2 = xAxis.p2d(Math.max(prevSelection.first.x, prevSelection.second.x) + deltaX);
+
+ // Check and handle boundary conditions
+ if (x1 < this.bounds.xmin) {
+ x2 = this.bounds.xmin + (x2 - x1);
+ x1 = this.bounds.xmin;
+ }
+ if (x2 > this.bounds.xmax) {
+ x1 = this.bounds.xmax - (x2 - x1);
+ x2 = this.bounds.xmax;
+ }
+
+ // Set selection area object
+ var area = {
+ x1: x1,
+ y1: prevSelection.first.y,
+ x2: x2,
+ y2: prevSelection.second.y
+ };
+
+ // If selection varies from previous, set new selection
+ if (area.x1 != prevSelection.first.x) {
+ this.graphs.summary.setSelection(area);
+ }
+
+ Event.observe(document, 'mousemove', handleObserver);
+ }.bind(this);
+
+ /**
+ * End scroll observer to detach event listeners
+ *
+ * @param e MouseEvent
+ */
+ function handleEndObserver (e) {
+ Event.stopObserving(document, 'mousemove', handleObserver);
+ Event.stopObserving(document, 'mouseup', handleEndObserver);
+ };
+
+ // Attach scroll handle observers
+ Event.observe(document, 'mousemove', handleObserver);
+ Event.observe(document, 'mouseup', handleEndObserver);
+ },
+
+ /**
+ * Begin zooming observer
+ *
+ * @param e MouseEvent
+ */
+ zoomObserver: function (e) {
+
+ var zoomHandle = e.element();
+ var x = e.clientX;
+ var offset = zoomHandle.cumulativeOffset();
+ var prevSelection = this.graphs.summary.prevSelection;
+
+ /**
+ * Perform zoom on handle move, observer
+ *
+ * @param e MouseEvent
+ */
+ var handleObserver = function (e) {
+
+ Event.stopObserving(document, 'mousemove', handleObserver);
+
+ var deltaX = e.clientX - x;
+ var xAxis = this.graphs.summary.axes.x;
+
+ // Set initial new x bounds
+ var x1, x2;
+ if (Element.identify(zoomHandle) == 'rightHandle') {
+ x1 = xAxis.p2d(Math.min(prevSelection.first.x, prevSelection.second.x));
+ x2 = xAxis.p2d(Math.max(prevSelection.first.x, prevSelection.second.x) + deltaX);
+ } else if (Element.identify(zoomHandle) == 'leftHandle') {
+ x1 = xAxis.p2d(Math.min(prevSelection.first.x, prevSelection.second.x) + deltaX);
+ x2 = xAxis.p2d(Math.max(prevSelection.first.x, prevSelection.second.x));
+ }
+
+ // Check and handle boundary conditions
+ if (x1 < this.bounds.xmin) {
+ x1 = this.bounds.xmin;
+ }
+ if (x2 > this.bounds.xmax) {
+ x2 = this.bounds.xmax;
+ }
+ if (x1 > this.bounds.xmax) {
+ x1 = this.bounds.xmax;
+ }
+ if (x2 < this.bounds.xmin) {
+ x2 = this.bounds.xmin;
+ }
+
+ // Set selection area object
+ var area = {
+ x1: x1,
+ y1: prevSelection.first.y,
+ x2: x2,
+ y2: prevSelection.second.y
+ };
+
+ // If selection varies from previous, set new selection
+ if (area.x1 != prevSelection.first.x || area.x2 != prevSelection.second.x) {
+ this.graphs.summary.setSelection(area);
+ }
+
+ Event.observe(document, 'mousemove', handleObserver);
+ }.bind(this);
+
+ /**
+ * End zoom observer to detach event listeners
+ *
+ * @param e MouseEvent
+ */
+ function handleEndObserver (e) {
+ Event.stopObserving(document, 'mousemove', handleObserver);
+ Event.stopObserving(document, 'mouseup', handleEndObserver);
+ };
+
+ // Attach handler slide event listeners
+ Event.observe(document, 'mousemove', handleObserver);
+ Event.observe(document, 'mouseup', handleEndObserver);
+ },
+
+ /**
+ * Perform a manual zoom.
+ *
+ * Zoom backwards from the right zoom handle. If no selection or handles
+ * are present, zoom backwards from the right hand side.
+ *
+ * @param integer x
+ */
+ zoom: function (x) {
+
+ var prevSelection = this.graphs.summary.prevSelection;
+ var xAxis = this.graphs.summary.axes.x;
+ var x1, x2, y1, y2;
+
+ // Check for previous selection
+ if (!prevSelection) {
+ x1 = Math.max(this.bounds.xmax - Number(x), this.bounds.xmin);
+ x2 = this.bounds.xmax;
+ y1 = 0;
+ y2 = 0;
+ } else {
+ x2 = xAxis.p2d(Math.max(prevSelection.first.x, prevSelection.second.x));
+ x1 = Math.max(x2 - Number(x), this.bounds.xmin);
+ y1 = prevSelection.first.y;
+ y2 = prevSelection.second.y;
+ }
+
+ var area = {
+ x1: x1,
+ y1: y1,
+ x2: x2,
+ y2: y2
+ };
+
+ this.graphs.summary.setSelection(area);
+ },
+
+ /**
+ * Set the position of the zoom handles
+ *
+ * @param e MouseEvent
+ */
+ positionZoomHandles: function (e) {
+
+ var x1 = e.memo[0].x1;
+ var x2 = e.memo[0].x2;
+ var xaxis = e.memo[1].axes.x;
+ var plotOffset = e.memo[1].plotOffset;
+ var height = this.containers.summary.getHeight();
+ var offset = this.containers.summary.positionedOffset();
+ this.handles.left.show();
+ var dimensions = this.handles.left.getDimensions();
+
+ // Set positions
+ var xPosOne = Math.floor(offset[0]+plotOffset.left+xaxis.d2p(x1)-dimensions.width/2+1);
+ var xPosTwo = Math.ceil(offset[0]+plotOffset.left+xaxis.d2p(x2)-dimensions.width/2);
+ var xPosLeft = Math.min(xPosOne, xPosTwo);
+ var xPosRight = Math.max(xPosOne, xPosTwo);
+ var yPos = Math.floor(offset[1]+height/2 - dimensions.height/2);
+
+ this.handles.left.setStyle({position: 'absolute', left: xPosLeft+'px', top: yPos+'px'});
+ this.handles.right.setStyle({position: 'absolute', left: xPosRight+'px', top: yPos+'px'});
+ this.handles.left.show();
+ this.handles.right.show();
+ },
+
+ /**
+ * Clear point hits for price and volume graphs.
+ *
+ * @param e MouseEvent
+ */
+ clearHit: function(e) {
+ this.graphs.price.clearHit();//.mouseTrack.hide();
+ this.graphs.volume.clearHit();
+ },
+
+ /**
+ * Observer for volume hit to set price hit
+ *
+ * @param e MouseEvent
+ */
+ volumeHitObserver: function (e) {
+
+ // Hide mouse track on volume graph
+ this.graphs.volume.mouseTrack.hide();
+
+ // Display hit on price graph
+ var point = this.priceData[e.memo[0].x];
+ Event.stopObserving(this.containers.volume, 'flotr:hit');
+ this.doHit(this.graphs.price, point, this.containers.volume);
+ Event.observe(this.containers.volume, 'flotr:hit', this.volumeHitObserver.bind(this));
+ },
+
+ /**
+ * Observer for price hit to set volume hit
+ *
+ * @param e MouseEvent
+ */
+ priceHitObserver: function (e) {
+
+ // Display hit on volume graph
+ var point = this.volumeData[e.memo[0].x];
+ Event.stopObserving(this.containers.price, 'flotr:hit');
+ this.doHit(this.graphs.volume, point, this.containers.price);
+ Event.observe(this.containers.price, 'flotr:hit', this.priceHitObserver.bind(this));
+
+ // Hide mouse track on volume graph
+ this.graphs.volume.mouseTrack.hide();
+ },
+
+ /**
+ * Calculate hit location from one graph and perform hit on another
+ *
+ * @param Flotr.Graph graph Destination graph.
+ * @param Array point The coordinates of the hit as [x, y].
+ * @param Element container The container of the source graph.
+ */
+ doHit: function (graph, point, container) {
+
+ var offset = container.cumulativeOffset();
+
+ var xaxis = graph.axes.x;
+ var yaxis = graph.axes.y;
+
+ var relX = xaxis.d2p(point[0]);
+ var relY = yaxis.d2p(point[1]);
+
+ var absX = offset[0]+relX;
+ var absY = offset[1]+relY;
+
+ var mouse = {'relX': relX, 'relY': relY, 'absX': absX, 'absY': absY};
+
+ graph.hit(mouse);
+ },
+
+ /**
+ * Add flags to the graph.
+ *
+ * @param Array An array of flags.
+ */
+ setFlags: function (flags) {
+ this.flagData = flags;
+ this.drawFlags();
+ },
+
+ /**
+ * Draw flags on top of the graph.
+ */
+ drawFlags: function () {
+
+ var xAxis = this.graphs.price.axes.x;
+ var yAxis = this.graphs.price.axes.y;
+ var min = xAxis.datamin;
+ var max = xAxis.datamax;
+
+ this.containers.flags.update('');
+
+ for (var i = 0; i < this.flagData.length; i++) {
+
+ var x = this.flagData[i][0];
+
+ if (x < min) {
+ continue;
+ } else if (x >= min && x <= xmax) {
+ // Draw the flag
+ var point = this.priceData[x];
+ var flagContent = this.flagData[i][1];
+ var xPos = xAxis.d2p(point[0]);
+ var yPos = yAxis.d2p(point[1]);
+ var offset = this.containers.price.cumulativeOffset();
+
+ var left = Math.floor(xPos + this.graphs.price.plotOffset.left);
+ var top = Math.floor(yPos - 40 + this.graphs.price.plotOffset.top);
+
+ flag = new Element('div', {'class': 'flag', 'style': 'position: absolute; top: '+top+'px; left: '+left+'px; z-index: 10;'});
+ flag.update(flagContent);
+ flagpole = new Element('div', {'class': 'flagpole', 'style': 'position: absolute; top: '+top+'px; left: '+left+'px; z-index: 10; height: 40px;'});
+ this.containers.flags.insert(flag);
+ this.containers.flags.insert(flagpole);
+
+ } else if (x >= xmax) {
+ break;
+ }
+ }
+ },
+
+ /**
+ * Draw the price graph
+ *
+ * @param Array data
+ * @param Array bounds
+ * @return Flotr.Graph
+ */
+ priceGraph: function (data, bounds) {
+
+ var xmin = bounds.xmin;
+ var xmax = bounds.xmax;
+ var ymin = bounds.ymin;
+ var ymax = bounds.ymax;
+
+ var p = Flotr.draw(
+ $('priceGraph'),
+ [data],
+ {
+ lines: {show: true, fill: true, fillOpacity: .1, lineWidth: 1},
+ yaxis: {min: ymin, max: ymax, tickFormatter: this.yTickFormatter, noTicks: 3, autoscaleMargin: .5, tickDecimals: 0},
+ xaxis: {min: xmin, max: xmax, showLabels: false},
+ grid: {outlineWidth: 0, labelMargin: 0},
+ mouse: {track: true, sensibility: 1, trackDecimals: 4, trackFormatter: this.trackFormatter, position: 'ne'},
+ shadowSize: false,
+ HtmlText: true
+ }
+ );
+
+ return p;
+ },
+
+ /**
+ * Draw the volume graph
+ *
+ * @param Array data
+ * @param Array bounds
+ * @return Flotr.Graph
+ */
+ volumeGraph: function (data, bounds) {
+
+ var xmin = bounds.xmin;
+ var xmax = bounds.xmax;
+ var ymin = bounds.ymin;
+ var ymax = bounds.ymax;
+
+ var v = Flotr.draw(
+ $('volumeGraph'),
+ [data],
+ {
+ bars: {show: true, 'barWidth': .5, 'fill': true, 'lineWidth': 2, 'fillOpacity': 1},
+ yaxis: {min: ymin, max: ymax, autoscaleMargin: .5, showLabels: false, tickDecimals: 0},
+ xaxis: {min: xmin, max: xmax, showLabels: false, labelsAngle: 60},
+ grid: {verticalLines: false, horizontalLines: false, outlineWidth: 0, labelMargin: 0},
+ mouse: {track: true, sensibility: .3, position: 'ne', trackDecimals: 0},
+ shadowSize: false,
+ HtmlText: true
+ }
+ );
+
+ return v;
+ },
+
+ /**
+ * Draw the summary graph
+ *
+ * @param Array data
+ * @param Array bounds
+ * @return Flotr.Graph
+ */
+ summaryGraph: function (data, bounds) {
+
+ var xmin = bounds.xmin;
+ var xmax = bounds.xmax;
+ var ymin = bounds.ymin;
+ var ymax = bounds.ymax;
+
+ var p = Flotr.draw(
+ $('summaryGraph'),
+ [data],
+ {
+ lines: {show: true, fill: true, fillOpacity: .1, lineWidth: 1},
+ yaxis: {min: ymin, max: ymax, autoscaleMargin: .5, showLabels: false, tickDecimals: 1},
+ xaxis: {min: xmin, max: xmax, noTicks: 5, tickFormatter: this.xTickFormatter, labelsAngle: 60},
+ grid: {verticalLines: false, horizontalLines: false, labelMargin: 0, outlineWidth: 0},
+ selection: {mode: 'x'},
+ shadowSize: false,
+ HtmlText: true
+ }
+ );
+
+ return p;
+ }
+}
\ No newline at end of file
diff --git a/sample_for_plotting/js/base64.js b/sample_for_plotting/js/base64.js
new file mode 100644
index 0000000..3306e49
--- /dev/null
+++ b/sample_for_plotting/js/base64.js
@@ -0,0 +1,113 @@
+/* Copyright (C) 1999 Masanao Izumo
+ * Version: 1.0
+ * LastModified: Dec 25 1999
+ * This library is free. You can redistribute it and/or modify it.
+ */
+
+/*
+ * Interfaces:
+ * b64 = base64encode(data);
+ * data = base64decode(b64);
+ */
+
+(function() {
+
+var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+var base64DecodeChars = [
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
+ -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1];
+
+function base64encode(str) {
+ var out, i, len;
+ var c1, c2, c3;
+
+ len = str.length;
+ i = 0;
+ out = "";
+ while(i < len) {
+ c1 = str.charCodeAt(i++) & 0xff;
+ if(i == len)
+ {
+ out += base64EncodeChars.charAt(c1 >> 2);
+ out += base64EncodeChars.charAt((c1 & 0x3) << 4);
+ out += "==";
+ break;
+ }
+ c2 = str.charCodeAt(i++);
+ if(i == len)
+ {
+ out += base64EncodeChars.charAt(c1 >> 2);
+ out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
+ out += base64EncodeChars.charAt((c2 & 0xF) << 2);
+ out += "=";
+ break;
+ }
+ c3 = str.charCodeAt(i++);
+ out += base64EncodeChars.charAt(c1 >> 2);
+ out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
+ out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
+ out += base64EncodeChars.charAt(c3 & 0x3F);
+ }
+ return out;
+}
+
+function base64decode(str) {
+ var c1, c2, c3, c4;
+ var i, len, out;
+
+ len = str.length;
+ i = 0;
+ out = "";
+ while(i < len) {
+ /* c1 */
+ do {
+ c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
+ } while(i < len && c1 == -1);
+ if(c1 == -1)
+ break;
+
+ /* c2 */
+ do {
+ c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
+ } while(i < len && c2 == -1);
+ if(c2 == -1)
+ break;
+
+ out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
+
+ /* c3 */
+ do {
+ c3 = str.charCodeAt(i++) & 0xff;
+ if(c3 == 61)
+ return out;
+ c3 = base64DecodeChars[c3];
+ } while(i < len && c3 == -1);
+ if(c3 == -1)
+ break;
+
+ out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
+
+ /* c4 */
+ do {
+ c4 = str.charCodeAt(i++) & 0xff;
+ if(c4 == 61)
+ return out;
+ c4 = base64DecodeChars[c4];
+ } while(i < len && c4 == -1);
+ if(c4 == -1)
+ break;
+ out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
+ }
+ return out;
+}
+
+if (!window.btoa) window.btoa = base64encode;
+if (!window.atob) window.atob = base64decode;
+
+})();
\ No newline at end of file
diff --git a/sample_for_plotting/js/canvas2image.js b/sample_for_plotting/js/canvas2image.js
new file mode 100644
index 0000000..148b430
--- /dev/null
+++ b/sample_for_plotting/js/canvas2image.js
@@ -0,0 +1,230 @@
+/*
+ * Canvas2Image v0.1
+ * Copyright (c) 2008 Jacob Seidelin, cupboy@gmail.com
+ * MIT License [http://www.opensource.org/licenses/mit-license.php]
+ */
+
+var Canvas2Image = (function() {
+ // check if we have canvas support
+ var oCanvas = document.createElement("canvas");
+
+ // no canvas, bail out.
+ if (!oCanvas.getContext) {
+ return {
+ saveAsBMP : function(){},
+ saveAsPNG : function(){},
+ saveAsJPEG : function(){}
+ }
+ }
+
+ var bHasImageData = !!(oCanvas.getContext("2d").getImageData);
+ var bHasDataURL = !!(oCanvas.toDataURL);
+ var bHasBase64 = !!(window.btoa);
+
+ var strDownloadMime = "image/octet-stream";
+
+ // ok, we're good
+ var readCanvasData = function(oCanvas) {
+ var iWidth = parseInt(oCanvas.width);
+ var iHeight = parseInt(oCanvas.height);
+ return oCanvas.getContext("2d").getImageData(0,0,iWidth,iHeight);
+ }
+
+ // base64 encodes either a string or an array of charcodes
+ var encodeData = function(data) {
+ var strData = "";
+ if (typeof data == "string") {
+ strData = data;
+ } else {
+ var aData = data;
+ for (var i = 0; i < aData.length; i++) {
+ strData += String.fromCharCode(aData[i]);
+ }
+ }
+ return btoa(strData);
+ }
+
+ // creates a base64 encoded string containing BMP data
+ // takes an imagedata object as argument
+ var createBMP = function(oData) {
+ var aHeader = [];
+
+ var iWidth = oData.width;
+ var iHeight = oData.height;
+
+ aHeader.push(0x42); // magic 1
+ aHeader.push(0x4D);
+
+ var iFileSize = iWidth*iHeight*3 + 54; // total header size = 54 bytes
+ aHeader.push(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+ aHeader.push(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+ aHeader.push(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+ aHeader.push(iFileSize % 256);
+
+ aHeader.push(0); // reserved
+ aHeader.push(0);
+ aHeader.push(0); // reserved
+ aHeader.push(0);
+
+ aHeader.push(54); // data offset
+ aHeader.push(0);
+ aHeader.push(0);
+ aHeader.push(0);
+
+ var aInfoHeader = [];
+ aInfoHeader.push(40); // info header size
+ aInfoHeader.push(0);
+ aInfoHeader.push(0);
+ aInfoHeader.push(0);
+
+ var iImageWidth = iWidth;
+ aInfoHeader.push(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+ aInfoHeader.push(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+ aInfoHeader.push(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+ aInfoHeader.push(iImageWidth % 256);
+
+ var iImageHeight = iHeight;
+ aInfoHeader.push(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+ aInfoHeader.push(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+ aInfoHeader.push(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+ aInfoHeader.push(iImageHeight % 256);
+
+ aInfoHeader.push(1); // num of planes
+ aInfoHeader.push(0);
+
+ aInfoHeader.push(24); // num of bits per pixel
+ aInfoHeader.push(0);
+
+ aInfoHeader.push(0); // compression = none
+ aInfoHeader.push(0);
+ aInfoHeader.push(0);
+ aInfoHeader.push(0);
+
+ var iDataSize = iWidth*iHeight*3;
+ aInfoHeader.push(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+ aInfoHeader.push(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+ aInfoHeader.push(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+ aInfoHeader.push(iDataSize % 256);
+
+ for (var i = 0; i < 16; i++) {
+ aInfoHeader.push(0); // these bytes not used
+ }
+
+ var iPadding = (4 - ((iWidth * 3) % 4)) % 4;
+
+ var aImgData = oData.data;
+
+ var strPixelData = "";
+ var y = iHeight;
+ do {
+ var iOffsetY = iWidth*(y-1)*4;
+ var strPixelRow = "";
+ for (var x=0;x object containing the imagedata
+ var makeImageObject = function(strSource) {
+ var oImgElement = document.createElement("img");
+ oImgElement.src = strSource;
+ return oImgElement;
+ }
+
+ var scaleCanvas = function(oCanvas, iWidth, iHeight) {
+ if (iWidth && iHeight) {
+ var oSaveCanvas = document.createElement("canvas");
+
+ oSaveCanvas.width = iWidth;
+ oSaveCanvas.height = iHeight;
+ oSaveCanvas.style.width = iWidth+"px";
+ oSaveCanvas.style.height = iHeight+"px";
+
+ var oSaveCtx = oSaveCanvas.getContext("2d");
+
+ oSaveCtx.drawImage(oCanvas, 0, 0, oCanvas.width, oCanvas.height, 0, 0, iWidth, iWidth);
+
+ return oSaveCanvas;
+ }
+ return oCanvas;
+ }
+
+ return {
+ saveAsPNG : function(oCanvas, bReturnImg, iWidth, iHeight) {
+ if (!bHasDataURL) {
+ return false;
+ }
+ var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight);
+ var strData = oScaledCanvas.toDataURL("image/png");
+ if (bReturnImg) {
+ return makeImageObject(strData);
+ } else {
+ saveFile(strData.replace("image/png", strDownloadMime));
+ }
+ return true;
+ },
+
+ saveAsJPEG : function(oCanvas, bReturnImg, iWidth, iHeight) {
+ if (!bHasDataURL) {
+ return false;
+ }
+
+ var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight);
+ var strMime = "image/jpeg";
+ var strData = oScaledCanvas.toDataURL(strMime);
+
+ // check if browser actually supports jpeg by looking for the mime type in the data uri.
+ // if not, return false
+ if (strData.indexOf(strMime) != 5) {
+ return false;
+ }
+
+ if (bReturnImg) {
+ return makeImageObject(strData);
+ } else {
+ saveFile(strData.replace(strMime, strDownloadMime));
+ }
+ return true;
+ },
+
+ saveAsBMP : function(oCanvas, bReturnImg, iWidth, iHeight) {
+ if (!(bHasImageData && bHasBase64)) {
+ return false;
+ }
+
+ var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight);
+
+ var oData = readCanvasData(oScaledCanvas);
+ var strImgData = createBMP(oData);
+ if (bReturnImg) {
+ return makeImageObject(makeDataURI(strImgData, "image/bmp"));
+ } else {
+ saveFile(makeDataURI(strImgData, strDownloadMime));
+ }
+ return true;
+ }
+ };
+
+})();
\ No newline at end of file
diff --git a/sample_for_plotting/js/canvastext.js b/sample_for_plotting/js/canvastext.js
new file mode 100644
index 0000000..e29768d
--- /dev/null
+++ b/sample_for_plotting/js/canvastext.js
@@ -0,0 +1,449 @@
+/**
+ * This code is released to the public domain by Jim Studt, 2007.
+ * He may keep some sort of up to date copy at http://www.federated.com/~jim/canvastext/
+ * It as been modified by Fabien Mnager to handle font style like size, weight, color and rotation.
+ * A partial support for special characters has been added too.
+ */
+var CanvasText = {
+ /** The letters definition. It is a list of letters,
+ * with their width, and the coordinates of points compositing them.
+ * The syntax for the points is : [x, y], null value means "pen up"
+ */
+ letters: {
+ '\n':{ width: -1, points: [] },
+ ' ': { width: 10, points: [] },
+ '!': { width: 10, points: [[5,21],[5,7],null,[5,2],[4,1],[5,0],[6,1],[5,2]] },
+ '"': { width: 16, points: [[4,21],[4,14],null,[12,21],[12,14]] },
+ '#': { width: 21, points: [[11,25],[4,-7],null,[17,25],[10,-7],null,[4,12],[18,12],null,[3,6],[17,6]] },
+ '$': { width: 20, points: [[8,25],[8,-4],null,[12,25],[12,-4],null,[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]] },
+ '%': { width: 24, points: [[21,21],[3,0],null,[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],null,[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]] },
+ '&': { width: 26, points: [[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]] },
+ '\'':{ width: 10, points: [[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]] },
+ '(': { width: 14, points: [[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]] },
+ ')': { width: 14, points: [[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]] },
+ '*': { width: 16, points: [[8,21],[8,9],null,[3,18],[13,12],null,[13,18],[3,12]] },
+ '+': { width: 26, points: [[13,18],[13,0],null,[4,9],[22,9]] },
+ ',': { width: 10, points: [[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]] },
+ '-': { width: 26, points: [[4,9],[22,9]] },
+ '.': { width: 10, points: [[5,2],[4,1],[5,0],[6,1],[5,2]] },
+ '/': { width: 22, points: [[20,25],[2,-7]] },
+ '0': { width: 20, points: [[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]] },
+ '1': { width: 20, points: [[6,17],[8,18],[11,21],[11,0]] },
+ '2': { width: 20, points: [[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]] },
+ '3': { width: 20, points: [[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]] },
+ '4': { width: 20, points: [[13,21],[3,7],[18,7],null,[13,21],[13,0]] },
+ '5': { width: 20, points: [[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]] },
+ '6': { width: 20, points: [[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]] },
+ '7': { width: 20, points: [[17,21],[7,0],null,[3,21],[17,21]] },
+ '8': { width: 20, points: [[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]] },
+ '9': { width: 20, points: [[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]] },
+ ':': { width: 10, points: [[5,14],[4,13],[5,12],[6,13],[5,14],null,[5,2],[4,1],[5,0],[6,1],[5,2]] },
+ ';': { width: 10, points: [[5,14],[4,13],[5,12],[6,13],[5,14],null,[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]] },
+ '<': { width: 24, points: [[20,18],[4,9],[20,0]] },
+ '=': { width: 26, points: [[4,12],[22,12],null,[4,6],[22,6]] },
+ '>': { width: 24, points: [[4,18],[20,9],[4,0]] },
+ '?': { width: 18, points: [[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],null,[9,2],[8,1],[9,0],[10,1],[9,2]] },
+ '@': { width: 27, points: [[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],null,[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],null,[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],null,[19,16],[18,8],[18,6],[19,5]] },
+ 'A': { width: 18, points: [[9,21],[1,0],null,[9,21],[17,0],null,[4,7],[14,7]] },
+ 'B': { width: 21, points: [[4,21],[4,0],null,[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],null,[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]] },
+ 'C': { width: 21, points: [[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]] },
+ 'D': { width: 21, points: [[4,21],[4,0],null,[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]] },
+ 'E': { width: 19, points: [[4,21],[4,0],null,[4,21],[17,21],null,[4,11],[12,11],null,[4,0],[17,0]] },
+ 'F': { width: 18, points: [[4,21],[4,0],null,[4,21],[17,21],null,[4,11],[12,11]] },
+ 'G': { width: 21, points: [[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],null,[13,8],[18,8]] },
+ 'H': { width: 22, points: [[4,21],[4,0],null,[18,21],[18,0],null,[4,11],[18,11]] },
+ 'I': { width: 8, points: [[4,21],[4,0]] },
+ 'J': { width: 16, points: [[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]] },
+ 'K': { width: 21, points: [[4,21],[4,0],null,[18,21],[4,7],null,[9,12],[18,0]] },
+ 'L': { width: 17, points: [[4,21],[4,0],null,[4,0],[16,0]] },
+ 'M': { width: 24, points: [[4,21],[4,0],null,[4,21],[12,0],null,[20,21],[12,0],null,[20,21],[20,0]] },
+ 'N': { width: 22, points: [[4,21],[4,0],null,[4,21],[18,0],null,[18,21],[18,0]] },
+ 'O': { width: 22, points: [[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]] },
+ 'P': { width: 21, points: [[4,21],[4,0],null,[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]] },
+ 'Q': { width: 22, points: [[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],null,[12,4],[18,-2]] },
+ 'R': { width: 21, points: [[4,21],[4,0],null,[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],null,[11,11],[18,0]] },
+ 'S': { width: 20, points: [[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]] },
+ 'T': { width: 16, points: [[8,21],[8,0],null,[1,21],[15,21]] },
+ 'U': { width: 22, points: [[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]] },
+ 'V': { width: 18, points: [[1,21],[9,0],null,[17,21],[9,0]] },
+ 'W': { width: 24, points: [[2,21],[7,0],null,[12,21],[7,0],null,[12,21],[17,0],null,[22,21],[17,0]] },
+ 'X': { width: 20, points: [[3,21],[17,0],null,[17,21],[3,0]] },
+ 'Y': { width: 18, points: [[1,21],[9,11],[9,0],null,[17,21],[9,11]] },
+ 'Z': { width: 20, points: [[17,21],[3,0],null,[3,21],[17,21],null,[3,0],[17,0]] },
+ '[': { width: 14, points: [[4,25],[4,-7],null,[5,25],[5,-7],null,[4,25],[11,25],null,[4,-7],[11,-7]] },
+ '\\':{ width: 14, points: [[0,21],[14,-3]] },
+ ']': { width: 14, points: [[9,25],[9,-7],null,[10,25],[10,-7],null,[3,25],[10,25],null,[3,-7],[10,-7]] },
+ '^': { width: 14, points: [[3,10],[8,18],[13,10]] },
+ '_': { width: 16, points: [[0,-2],[16,-2]] },
+ '`': { width: 10, points: [[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]] },
+ 'a': { width: 19, points: [[15,14],[15,0],null,[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'b': { width: 19, points: [[4,21],[4,0],null,[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]] },
+ 'c': { width: 18, points: [[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'd': { width: 19, points: [[15,21],[15,0],null,[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'e': { width: 18, points: [[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'f': { width: 12, points: [[10,21],[8,21],[6,20],[5,17],[5,0],null,[2,14],[9,14]] },
+ 'g': { width: 19, points: [[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],null,[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'h': { width: 19, points: [[4,21],[4,0],null,[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]] },
+ 'i': { width: 8, points: [[3,21],[4,20],[5,21],[4,22],[3,21],null,[4,14],[4,0]] },
+ 'j': { width: 10, points: [[5,21],[6,20],[7,21],[6,22],[5,21],null,[6,14],[6,-3],[5,-6],[3,-7],[1,-7]] },
+ 'k': { width: 17, points: [[4,21],[4,0],null,[14,14],[4,4],null,[8,8],[15,0]] },
+ 'l': { width: 8, points: [[4,21],[4,0]] },
+ 'm': { width: 30, points: [[4,14],[4,0],null,[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],null,[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]] },
+ 'n': { width: 19, points: [[4,14],[4,0],null,[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]] },
+ 'o': { width: 19, points: [[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]] },
+ 'p': { width: 19, points: [[4,14],[4,-7],null,[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]] },
+ 'q': { width: 19, points: [[15,14],[15,-7],null,[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
+ 'r': { width: 13, points: [[4,14],[4,0],null,[4,8],[5,11],[7,13],[9,14],[12,14]] },
+ 's': { width: 17, points: [[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]] },
+ 't': { width: 12, points: [[5,21],[5,4],[6,1],[8,0],[10,0],null,[2,14],[9,14]] },
+ 'u': { width: 19, points: [[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],null,[15,14],[15,0]] },
+ 'v': { width: 16, points: [[2,14],[8,0],null,[14,14],[8,0]] },
+ 'w': { width: 22, points: [[3,14],[7,0],null,[11,14],[7,0],null,[11,14],[15,0],null,[19,14],[15,0]] },
+ 'x': { width: 17, points: [[3,14],[14,0],null,[14,14],[3,0]] },
+ 'y': { width: 16, points: [[2,14],[8,0],null,[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]] },
+ 'z': { width: 17, points: [[14,14],[3,0],null,[3,14],[14,14],null,[3,0],[14,0]] },
+ '{': { width: 14, points: [[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],null,[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],null,[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]] },
+ '|': { width: 8, points: [[4,25],[4,-7]] },
+ '}': { width: 14, points: [[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],null,[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],null,[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]] },
+ '~': { width: 24, points: [[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],null,[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]] },
+
+ // Lower case Latin-1
+ '': { diacritic: '`', letter: 'a' },
+ '': { diacritic: '', letter: 'a' },
+ '': { diacritic: '^', letter: 'a' },
+ '': { diacritic: '', letter: 'a' },
+
+ '': { diacritic: '`', letter: 'e' },
+ '': { diacritic: '', letter: 'e' },
+ '': { diacritic: '^', letter: 'e' },
+ '': { diacritic: '', letter: 'e' },
+
+ '': { diacritic: '`', letter: 'i' },
+ '': { diacritic: '', letter: 'i' },
+ '': { diacritic: '^', letter: 'i' },
+ '': { diacritic: '', letter: 'i' },
+
+ '': { diacritic: '`', letter: 'o' },
+ '': { diacritic: '', letter: 'o' },
+ '': { diacritic: '^', letter: 'o' },
+ '': { diacritic: '', letter: 'o' },
+ '': { diacritic: '~', letter: 'o' },
+
+ '': { diacritic: '`', letter: 'u' },
+ '': { diacritic: '', letter: 'u' },
+ '': { diacritic: '^', letter: 'u' },
+ '': { diacritic: '', letter: 'u' },
+
+ '': { diacritic: '', letter: 'y' },
+ '': { diacritic: '', letter: 'y' },
+
+ '': { diacritic: '', letter: 'c' },
+ '': { diacritic: '~', letter: 'n' },
+
+ // Upper case Latin-1
+ '': { diacritic: '`', letter: 'A' },
+ '': { diacritic: '', letter: 'A' },
+ '': { diacritic: '^', letter: 'A' },
+ '': { diacritic: '', letter: 'A' },
+
+ '': { diacritic: '`', letter: 'E' },
+ '': { diacritic: '', letter: 'E' },
+ '': { diacritic: '^', letter: 'E' },
+ '': { diacritic: '', letter: 'E' },
+
+ '': { diacritic: '`', letter: 'I' },
+ '': { diacritic: '', letter: 'I' },
+ '': { diacritic: '^', letter: 'I' },
+ '': { diacritic: '', letter: 'I' },
+
+ '': { diacritic: '`', letter: 'O' },
+ '': { diacritic: '', letter: 'O' },
+ '': { diacritic: '^', letter: 'O' },
+ '': { diacritic: '', letter: 'O' },
+ '': { diacritic: '~', letter: 'O' },
+
+ '': { diacritic: '`', letter: 'U' },
+ '': { diacritic: '', letter: 'U' },
+ '': { diacritic: '^', letter: 'U' },
+ '': { diacritic: '', letter: 'U' },
+
+ '': { diacritic: '', letter: 'Y' },
+
+ '': { diacritic: '', letter: 'C' },
+ '': { diacritic: '~', letter: 'N' }
+ },
+
+ specialchars: {
+ 'pi': { width: 19, points: [[6,14],[6,0],null,[14,14],[14,0],null,[2,13],[6,16],[13,13],[17,16]] }
+ },
+
+ /** Diacritics, used to draw accentuated letters */
+ diacritics: {
+ '': { entity: 'cedil', points: [[6,-4],[4,-6],[2,-7],[1,-7]] },
+ '': { entity: 'acute', points: [[8,19],[13,22]] },
+ '`': { entity: 'grave', points: [[7,22],[12,19]] },
+ '^': { entity: 'circ', points: [[5.5,19],[9.5,23],[12.5,19]] },
+ '': { entity: 'trema', points: [[5,21],[6,20],[7,21],[6,22],[5,21],null,[12,21],[13,20],[14,21],[13,22],[12,21]] },
+ '~': { entity: 'tilde', points: [[4,18],[7,22],[10,18],[13,22]] }
+ },
+
+ /** The default font styling */
+ style: {
+ size: 8, // font height in pixels
+ font: null, // not yet implemented
+ color: '#000000', // font color
+ weight: 1, // float, 1 for 'normal'
+ halign: 'l', // l: left, r: right, c: center
+ valign: 'b', // t: top, m: middle, b: bottom
+ adjustAlign: false, // modifies the alignments if the angle is different from 0 to make the spin point always at the good position
+ angle: 0, // in radians, anticlockwise
+ tracking: 1, // space between the letters, float, 1 for 'normal'
+ boundingBoxColor: '#ff0000', // color of the bounding box (null to hide), can be used for debug and font drawing
+ originPointColor: '#000000' // color of the bounding box (null to hide), can be used for debug and font drawing
+ },
+
+ debug: false,
+ _bufferLexemes: {},
+
+ /** Get the letter data corresponding to a char
+ * @param {String} ch - The char
+ */
+ letter: function(ch) {
+ return CanvasText.letters[ch];
+ },
+
+ parseLexemes: function(str) {
+ if (CanvasText._bufferLexemes[str])
+ return CanvasText._bufferLexemes[str];
+
+ var i, c, matches = str.match(/&[A-Za-z]{2,5};|\s|./g);
+ var result = [], chars = [];
+ for (i = 0; i < matches.length; i++) {
+ c = matches[i];
+ if (c.length == 1)
+ chars.push(c);
+ else {
+ var entity = c.substring(1, c.length-1);
+ if (CanvasText.specialchars[entity])
+ chars.push(entity);
+ else
+ chars = chars.concat(c.toArray());
+ }
+ }
+ for (i = 0; i < chars.length; i++) {
+ c = chars[i];
+ if (c = CanvasText.letters[c] || CanvasText.specialchars[c]) result.push(c);
+ }
+ for(i = 0; i < result.length; i++) {
+ if (result === null || typeof result === 'undefined')
+ delete result[i];
+ }
+ return CanvasText._bufferLexemes[str] = result;
+ },
+
+ /** Get the font ascent for a given style
+ * @param {Object} style - The reference style
+ */
+ ascent: function(style) {
+ style = style || CanvasText.style;
+ return (style.size || CanvasText.style.size);
+ },
+
+ /** Get the font descent for a given style
+ * @param {Object} style - The reference style
+ * */
+ descent: function(style) {
+ style = style || CanvasText.style;
+ return 7.0*(style.size || CanvasText.style.size)/25.0;
+ },
+
+ /** Measure the text horizontal size
+ * @param {String} str - The text
+ * @param {Object} style - Text style
+ * */
+ measure: function(str, style) {
+ if (!str) return;
+ style = style || CanvasText.style;
+
+ var i, width, lexemes = CanvasText.parseLexemes(str),
+ total = 0;
+
+ for (i = lexemes.length-1; i > -1; --i) {
+ c = lexemes[i];
+ width = (c.diacritic) ? CanvasText.letter(c.letter).width : c.width;
+ total += width * (style.tracking || CanvasText.style.tracking) * (style.size || CanvasText.style.size) / 25.0;
+ }
+ return total;
+ },
+
+ getDimensions: function(str, style) {
+ style = style || CanvasText.style;
+ var width = CanvasText.measure(str, style),
+ height = style.size || CanvasText.style.size,
+ angle = style.angle || CanvasText.style.angle;
+
+ if (style.angle == 0) return {width: width, height: height};
+ return {
+ width: Math.abs(Math.cos(angle) * width) + Math.abs(Math.sin(angle) * height),
+ height: Math.abs(Math.sin(angle) * width) + Math.abs(Math.cos(angle) * height)
+ }
+ },
+
+ getBestAlign: function(angle, style) {
+ style = style || CanvasText.style;
+ angle += CanvasText.getAngleFromAlign(style.halign, style.valign);
+ var a = {h:'c', v:'m'};
+ if (Math.round(Math.cos(angle)*1000)/1000 != 0)
+ a.h = (Math.cos(angle) > 0 ? 'r' : 'l');
+
+ if (Math.round(Math.sin(angle)*1000)/1000 != 0)
+ a.v = (Math.sin(angle) > 0 ? 't' : 'b');
+ return a;
+ },
+
+ getAngleFromAlign: function(halign, valign) {
+ var pi = Math.PI, table = {
+ 'rm': 0,
+ 'rt': pi/4,
+ 'ct': pi/2,
+ 'lt': 3*(pi/4),
+ 'lm': pi,
+ 'lb': -3*(pi/4),
+ 'cb': -pi/2,
+ 'rb': -pi/4,
+ 'cm': 0
+ }
+ return table[halign+valign];
+ },
+
+ /** Draws serie of points at given coordinates
+ * @param {Canvas context} ctx - The canvas context
+ * @param {Array} points - The points to draw
+ * @param {Number} x - The X coordinate
+ * @param {Number} y - The Y coordinate
+ * @param {Number} mag - The scale
+ */
+ drawPoints: function (ctx, points, x, y, mag, offset) {
+ var i, a, penUp = true, needStroke = 0;
+ offset = offset || {x:0, y:0};
+
+ ctx.beginPath();
+ for (i = 0; i < points.length; i++) {
+ a = points[i];
+ if (!a) {
+ penUp = true;
+ continue;
+ }
+ if (penUp) {
+ ctx.moveTo(x + a[0]*mag + offset.x, y - a[1]*mag + offset.y);
+ penUp = false;
+ }
+ else {
+ ctx.lineTo(x + a[0]*mag + offset.x, y - a[1]*mag + offset.y);
+ }
+ }
+ ctx.stroke();
+ ctx.closePath();
+ },
+
+ /** Draws a text at given coordinates and with a given style
+ * @param {String} str - The text to draw
+ * @param {Number} xOrig - The X coordinate
+ * @param {Number} yOrig - The Y coordinate
+ * @param {Object} style - The font style
+ */
+ draw: function(str, xOrig, yOrig, style) {
+ if (!str) return;
+ style = style || CanvasText.style;
+ style.halign = style.halign || CanvasText.style.halign;
+ style.valign = style.valign || CanvasText.style.valign;
+ style.angle = style.angle || CanvasText.style.angle;
+ style.size = style.size || CanvasText.style.size;
+ style.adjustAlign = style.adjustAlign || CanvasText.style.adjustAlign;
+
+ var i, c, total = 0,
+ mag = style.size / 25.0,
+ x = 0, y = 0,
+ lexemes = CanvasText.parseLexemes(str),
+ offset = {x:0, y:0},
+ measure = CanvasText.measure(str, style),
+ align;
+
+ if (style.adjustAlign) {
+ align = CanvasText.getBestAlign(style.angle, style);
+ style.halign = align.h;
+ style.valign = align.v;
+ }
+
+ switch (style.halign) {
+ case 'l': break;
+ case 'c': offset.x = -measure / 2; break;
+ case 'r': offset.x = -measure; break;
+ }
+
+ switch (style.valign) {
+ case 'b': break;
+ case 'm': offset.y = style.size / 2; break;
+ case 't': offset.y = style.size; break;
+ }
+
+ this.save();
+ this.translate(xOrig, yOrig);
+ this.rotate(style.angle);
+ this.lineCap = "round";
+ this.lineWidth = 2.0 * mag * (style.weight || CanvasText.style.weight);
+ this.strokeStyle = style.color || CanvasText.style.color;
+
+ for (i = 0; i < lexemes.length; i++) {
+ c = lexemes[i];
+ if (c.width == -1) {
+ x = 0;
+ y = style.size * 1.4;
+ continue;
+ }
+
+ var points = c.points,
+ width = c.width;
+
+ if (c.diacritic) {
+ var dia = CanvasText.diacritics[c.diacritic],
+ character = CanvasText.letter(c.letter);
+
+ CanvasText.drawPoints(this, dia.points, x, y - (c.letter.toUpperCase() == c.letter ? 3 : 0), mag, offset);
+ points = character.points;
+ width = character.width;
+ }
+
+ CanvasText.drawPoints(this, points, x, y, mag, offset);
+
+ if (CanvasText.debug) {
+ this.save();
+ this.lineJoin = "miter";
+ this.lineWidth = 0.5;
+ this.strokeStyle = (style.boundingBoxColor || CanvasText.style.boundingBoxColor);
+ this.strokeRect(x+offset.x, y+offset.y, width*mag, -style.size);
+
+ this.fillStyle = (style.originPointColor || CanvasText.style.originPointColor);
+ this.beginPath();
+ this.arc(0, 0, 1.5, 0, Math.PI*2, true);
+ this.fill();
+ this.closePath();
+ this.restore();
+ }
+
+ x += width*mag*(style.tracking || CanvasText.style.tracking);
+ }
+ this.restore();
+ return total;
+ }
+};
+
+/** The text functions are bound to the CanvasRenderingContext2D prototype */
+CanvasText.proto = window.CanvasRenderingContext2D ? window.CanvasRenderingContext2D.prototype : document.createElement('canvas').getContext('2d').__proto__;
+if (CanvasText.proto) {
+ CanvasText.proto.drawText = CanvasText.draw;
+ CanvasText.proto.measureText = CanvasText.measure;
+ CanvasText.proto.getTextBounds = CanvasText.getDimensions;
+ CanvasText.proto.fontAscent = CanvasText.ascent;
+ CanvasText.proto.fontDescent = CanvasText.descent;
+}
\ No newline at end of file
diff --git a/sample_for_plotting/js/data.js b/sample_for_plotting/js/data.js
new file mode 100644
index 0000000..41fbe13
--- /dev/null
+++ b/sample_for_plotting/js/data.js
@@ -0,0 +1,5 @@
+var jsonData = [{date:'August 19, 2004',open:100.01,high:104.06,low:95.96,close:100.34,volume:22088000},{date:'August 20, 2004',open:101.48,high:109.08,low:100.50,close:108.31,volume:11377000},{date:'August 23, 2004',open:110.76,high:113.48,low:109.05,close:109.40,volume:9090700},{date:'August 24, 2004',open:111.24,high:111.60,low:103.57,close:104.87,volume:7599100},{date:'August 25, 2004',open:104.96,high:108.00,low:103.88,close:106.00,volume:4565900},{date:'August 26, 2004',open:104.95,high:107.95,low:104.66,close:107.91,volume:3527900},{date:'August 27, 2004',open:108.10,high:108.62,low:105.69,close:106.15,volume:3102400},{date:'August 30, 2004',open:105.49,high:105.49,low:102.01,close:102.01,volume:2585600},{date:'August 31, 2004',open:102.32,high:103.71,low:102.16,close:102.37,volume:2455900},{date:'September 1, 2004',open:102.70,high:102.97,low:99.67,close:100.25,volume:4525000},{date:'September 2, 2004',open:99.09,high:102.37,low:98.94,close:101.51,volume:7477500},{date:'September 3, 2004',open:100.95,high:101.74,low:99.32,close:100.01,volume:2572600},{date:'September 7, 2004',open:100.76,high:102.00,low:99.61,close:101.58,volume:2948400},{date:'September 8, 2004',open:100.74,high:103.03,low:100.50,close:102.30,volume:2493900},{date:'September 9, 2004',open:102.44,high:102.71,low:101.00,close:102.31,volume:2061500},{date:'September 10, 2004',open:101.60,high:106.56,low:101.30,close:105.33,volume:4736800},{date:'September 13, 2004',open:106.63,high:108.41,low:106.46,close:107.50,volume:3915300},{date:'September 14, 2004',open:107.44,high:112.00,low:106.79,close:111.49,volume:5402900},{date:'September 15, 2004',open:110.56,high:114.23,low:110.20,close:112.00,volume:5288000},{date:'September 16, 2004',open:112.34,high:115.80,low:111.65,close:113.97,volume:4619500},{date:'September 17, 2004',open:114.42,high:117.49,low:113.55,close:117.49,volume:4535800},{date:'September 20, 2004',open:116.95,high:121.60,low:116.77,close:119.36,volume:5310000},{date:'September 21, 2004',open:120.20,high:120.42,low:117.51,close:117.84,volume:3610000},{date:'September 22, 2004',open:117.45,high:119.67,low:116.81,close:118.38,volume:3781000},{date:'September 23, 2004',open:118.84,high:122.63,low:117.02,close:120.82,volume:4254000},{date:'September 24, 2004',open:120.97,high:124.10,low:119.76,close:119.83,volume:4494400},{date:'September 27, 2004',open:119.56,high:120.88,low:117.80,close:118.26,volume:3523200},{date:'September 28, 2004',open:121.15,high:127.40,low:120.21,close:126.86,volume:8421200},{date:'September 29, 2004',open:126.53,high:135.02,low:126.23,close:131.08,volume:15175600},{date:'September 30, 2004',open:129.90,high:132.30,low:129.00,close:129.60,volume:6696200},{date:'October 1, 2004',open:130.80,high:134.24,low:128.90,close:132.58,volume:7515600},{date:'October 4, 2004',open:135.82,high:136.87,low:134.03,close:135.06,volume:6488900},{date:'October 5, 2004',open:134.66,high:138.53,low:132.24,close:138.37,volume:7359700},{date:'October 6, 2004',open:137.67,high:138.45,low:136.00,close:137.08,volume:6648600},{date:'October 7, 2004',open:136.56,high:139.88,low:136.55,close:138.85,volume:7036400},{date:'October 8, 2004',open:138.73,high:139.68,low:137.02,close:137.73,volume:5509700},{date:'October 11, 2004',open:137.01,high:138.86,low:133.85,close:135.26,volume:5210700},{date:'October 12, 2004',open:134.49,high:137.61,low:133.40,close:137.40,volume:5488100},{date:'October 13, 2004',open:143.32,high:143.55,low:140.08,close:140.90,volume:9846300},{date:'October 14, 2004',open:141.02,high:142.38,low:138.56,close:142.00,volume:5200700},{date:'October 15, 2004',open:144.95,high:145.50,low:141.95,close:144.11,volume:6477600},{date:'October 18, 2004',open:143.20,high:149.20,low:141.21,close:149.16,volume:6888900},{date:'October 19, 2004',open:150.50,high:152.40,low:147.35,close:147.94,volume:9029600},{date:'October 20, 2004',open:147.94,high:148.99,low:139.60,close:140.49,volume:11201800},{date:'October 21, 2004',open:144.13,high:150.13,low:141.62,close:149.38,volume:11329000},{date:'October 22, 2004',open:170.44,high:180.17,low:164.08,close:172.43,volume:36716300},{date:'October 25, 2004',open:175.89,high:194.43,low:172.55,close:187.40,volume:32608400},{date:'October 26, 2004',open:186.45,high:192.64,low:180.00,close:181.80,volume:22195200},{date:'October 27, 2004',open:182.29,high:189.52,low:181.77,close:185.97,volume:13199900},{date:'October 28, 2004',open:186.50,high:194.39,low:185.60,close:193.30,volume:14593000},{date:'October 29, 2004',open:198.87,high:199.95,low:190.60,close:190.64,volume:20986500},{date:'November 1, 2004',open:193.50,high:197.67,low:191.27,close:196.03,volume:12136100},{date:'November 2, 2004',open:198.73,high:199.25,low:193.34,close:194.87,volume:11281900},{date:'November 3, 2004',open:198.19,high:201.60,low:190.75,close:191.67,volume:13775600},{date:'November 4, 2004',open:188.25,high:190.40,low:183.35,close:184.70,volume:14031000},{date:'November 5, 2004',open:182.00,high:182.30,low:168.55,close:169.35,volume:19671800},{date:'November 8, 2004',open:170.93,high:175.44,low:169.40,close:172.55,volume:11116600},{date:'November 9, 2004',open:174.10,high:175.20,low:165.27,close:168.70,volume:10916400},{date:'November 10, 2004',open:170.67,high:172.52,low:166.33,close:167.86,volume:10507800},{date:'November 11, 2004',open:169.53,high:183.75,low:167.57,close:183.02,volume:14850400},{date:'November 12, 2004',open:185.23,high:189.80,low:177.40,close:182.00,volume:16677500},{date:'November 15, 2004',open:180.45,high:188.32,low:178.75,close:184.87,volume:11831700},{date:'November 16, 2004',open:177.50,high:179.47,low:170.83,close:172.54,volume:20774500},{date:'November 17, 2004',open:169.02,high:177.50,low:169.00,close:172.50,volume:17958800},{date:'November 18, 2004',open:170.40,high:174.42,low:165.73,close:167.54,volume:16150000},{date:'November 19, 2004',open:169.06,high:169.98,low:166.52,close:169.40,volume:8637600},{date:'November 22, 2004',open:168.64,high:169.50,low:161.31,close:165.10,volume:12216300},{date:'November 23, 2004',open:167.92,high:170.83,low:166.50,close:167.52,volume:10591100},{date:'November 24, 2004',open:174.84,high:177.21,low:172.51,close:174.76,volume:15167800},{date:'November 26, 2004',open:175.80,high:180.03,low:175.32,close:179.39,volume:6423400},{date:'November 29, 2004',open:180.26,high:182.95,low:177.51,close:181.05,volume:10562200},{date:'November 30, 2004',open:180.70,high:183.00,low:180.25,close:181.98,volume:7553600},{date:'December 1, 2004',open:181.77,high:182.50,low:179.55,close:179.96,volume:7801200},{date:'December 2, 2004',open:179.90,high:181.51,low:178.55,close:179.40,volume:6118100},{date:'December 3, 2004',open:179.78,high:181.06,low:177.60,close:180.40,volume:5807500},{date:'December 6, 2004',open:179.13,high:180.70,low:176.02,close:176.29,volume:6208700},{date:'December 7, 2004',open:176.00,high:176.20,low:170.55,close:171.43,volume:6838800},{date:'December 8, 2004',open:170.57,high:173.68,low:168.73,close:169.98,volume:7313000},{date:'December 9, 2004',open:170.25,high:173.50,low:168.47,close:173.43,volume:7587500},{date:'December 10, 2004',open:173.43,high:174.88,low:171.29,close:171.65,volume:4221600},{date:'December 13, 2004',open:172.03,high:173.18,low:169.45,close:170.45,volume:4758500},{date:'December 14, 2004',open:171.00,high:178.82,low:169.60,close:178.69,volume:10951700},{date:'December 15, 2004',open:177.99,high:180.69,low:176.66,close:179.78,volume:11302700},{date:'December 16, 2004',open:177.22,high:180.49,low:175.95,close:176.47,volume:8450200},{date:'December 17, 2004',open:176.76,high:180.50,low:176.55,close:180.08,volume:7117900},{date:'December 20, 2004',open:182.00,high:188.46,low:181.87,close:185.02,volume:9689600},{date:'December 21, 2004',open:186.28,high:187.88,low:183.40,close:183.75,volume:5471400},{date:'December 22, 2004',open:183.90,high:186.85,low:183.01,close:186.30,volume:3855300},{date:'December 23, 2004',open:187.45,high:188.60,low:186.00,close:187.90,volume:3590000},{date:'December 27, 2004',open:189.15,high:193.30,low:189.10,close:191.91,volume:6079400},{date:'December 28, 2004',open:192.11,high:193.55,low:191.01,close:192.76,volume:4126200},{date:'December 29, 2004',open:191.97,high:193.52,low:191.78,close:192.90,volume:2640200},{date:'December 30, 2004',open:192.97,high:198.23,low:191.85,close:197.60,volume:5832200},{date:'December 31, 2004',open:199.23,high:199.88,low:192.56,close:192.79,volume:7590200},{date:'January 3, 2005',open:197.40,high:203.64,low:195.46,close:202.71,volume:15649600},{date:'January 4, 2005',open:201.33,high:202.93,low:193.48,close:194.50,volume:13676500},{date:'January 5, 2005',open:193.45,high:196.90,low:192.23,close:193.51,volume:8194600},{date:'January 6, 2005',open:195.25,high:195.90,low:187.72,close:188.55,volume:10326000},{date:'January 7, 2005',open:190.64,high:194.25,low:188.78,close:193.85,volume:9508700},{date:'January 10, 2005',open:194.50,high:198.10,low:191.83,close:195.06,volume:7418600},{date:'January 11, 2005',open:195.62,high:197.71,low:193.18,close:193.54,volume:6920000},{date:'January 12, 2005',open:194.33,high:195.93,low:190.50,close:195.38,volume:8104700},{date:'January 13, 2005',open:195.38,high:197.39,low:194.05,close:195.33,volume:6814300},{date:'January 14, 2005',open:196.00,high:200.01,low:194.13,close:199.97,volume:9528700},{date:'January 18, 2005',open:200.89,high:205.02,low:198.66,close:203.90,volume:12656800},{date:'January 19, 2005',open:204.64,high:205.30,low:196.71,close:197.30,volume:10714400},{date:'January 20, 2005',open:192.58,high:196.25,low:192.00,close:193.92,volume:8957500},{date:'January 21, 2005',open:194.44,high:195.36,low:188.12,close:188.28,volume:9024100},{date:'January 24, 2005',open:188.69,high:189.33,low:180.32,close:180.72,volume:13881100},{date:'January 25, 2005',open:182.20,high:182.24,low:176.29,close:177.12,volume:10559300},{date:'January 26, 2005',open:179.27,high:189.41,low:179.15,close:189.24,volume:12225200},{date:'January 27, 2005',open:188.76,high:188.86,low:185.20,close:188.08,volume:6577800},{date:'January 28, 2005',open:190.02,high:194.70,low:186.34,close:190.34,volume:12126900},{date:'January 31, 2005',open:193.69,high:196.36,low:191.72,close:195.62,volume:9513600},{date:'February 1, 2005',open:194.38,high:203.75,low:190.63,close:191.90,volume:11985700},{date:'February 2, 2005',open:215.55,high:216.80,low:203.66,close:205.96,volume:32475300},{date:'February 3, 2005',open:205.99,high:213.37,low:205.81,close:210.86,volume:12873100},{date:'February 4, 2005',open:206.47,high:207.75,low:202.60,close:204.36,volume:14741600},{date:'February 7, 2005',open:205.26,high:206.40,low:195.51,close:196.03,volume:12853700},{date:'February 8, 2005',open:196.96,high:200.02,low:194.53,close:198.64,volume:11406000},{date:'February 9, 2005',open:200.76,high:201.60,low:189.46,close:191.58,volume:16922400},{date:'February 10, 2005',open:191.97,high:192.21,low:185.25,close:187.98,volume:18912700},{date:'February 11, 2005',open:186.66,high:192.32,low:186.07,close:187.40,volume:13048300},{date:'February 14, 2005',open:182.85,high:193.08,low:181.00,close:192.99,volume:38258000},{date:'February 15, 2005',open:193.60,high:199.84,low:193.08,close:195.23,volume:25721600},{date:'February 16, 2005',open:194.70,high:199.33,low:194.30,close:198.41,volume:16443100},{date:'February 17, 2005',open:197.83,high:199.75,low:196.81,close:197.90,volume:10367600},{date:'February 18, 2005',open:198.51,high:198.84,low:196.66,close:197.95,volume:8434100},{date:'February 22, 2005',open:196.50,high:198.90,low:190.39,close:191.37,volume:13404600},{date:'February 23, 2005',open:193.30,high:194.48,low:188.66,close:193.95,volume:15216400},{date:'February 24, 2005',open:183.37,high:189.85,low:182.23,close:188.89,volume:25572200},{date:'February 25, 2005',open:189.15,high:189.92,low:185.51,close:185.87,volume:9853900},{date:'February 28, 2005',open:186.00,high:189.87,low:185.85,close:187.99,volume:7756600},{date:'March 1, 2005',open:189.29,high:189.75,low:185.39,close:186.06,volume:9271000},{date:'March 2, 2005',open:185.95,high:187.67,low:184.36,close:185.18,volume:7260700},{date:'March 3, 2005',open:186.13,high:187.75,low:184.31,close:187.00,volume:7563400},{date:'March 4, 2005',open:186.70,high:187.25,low:185.07,close:185.90,volume:6725900},{date:'March 7, 2005',open:187.78,high:189.60,low:187.03,close:188.81,volume:8427800},{date:'March 8, 2005',open:189.10,high:189.85,low:184.97,close:185.20,volume:7975700},{date:'March 9, 2005',open:184.21,high:184.65,low:180.16,close:181.35,volume:11179700},{date:'March 10, 2005',open:181.01,high:181.20,low:177.40,close:179.98,volume:10673700},{date:'March 11, 2005',open:180.44,high:180.95,low:177.15,close:177.80,volume:7973600},{date:'March 14, 2005',open:178.33,high:178.40,low:172.57,close:174.99,volume:10972200},{date:'March 15, 2005',open:175.30,high:180.00,low:174.21,close:178.61,volume:10376100},{date:'March 16, 2005',open:176.70,high:178.61,low:175.01,close:175.60,volume:6877400},{date:'March 17, 2005',open:177.13,high:179.64,low:175.80,close:179.29,volume:8078000},{date:'March 18, 2005',open:178.81,high:180.40,low:178.31,close:180.04,volume:6682900},{date:'March 21, 2005',open:179.27,high:182.17,low:177.25,close:180.88,volume:7411000},{date:'March 22, 2005',open:181.18,high:181.94,low:177.85,close:178.60,volume:5563900},{date:'March 23, 2005',open:177.97,high:180.24,low:177.97,close:178.98,volume:4794100},{date:'March 24, 2005',open:180.70,high:180.86,low:179.20,close:179.25,volume:3680200},{date:'March 28, 2005',open:181.68,high:184.80,low:180.95,close:181.42,volume:8661900},{date:'March 29, 2005',open:181.05,high:183.28,low:178.07,close:179.57,volume:6452700},{date:'March 30, 2005',open:180.64,high:181.45,low:179.60,close:180.45,volume:6206800},{date:'March 31, 2005',open:177.95,high:181.39,low:177.64,close:180.51,volume:6696900},{date:'April 1, 2005',open:181.76,high:182.95,low:179.99,close:180.04,volume:6159800},{date:'April 4, 2005',open:179.95,high:185.32,low:179.84,close:185.29,volume:8038300},{date:'April 5, 2005',open:187.73,high:190.26,low:187.57,close:188.57,volume:8636900},{date:'April 6, 2005',open:189.24,high:189.65,low:187.58,close:189.22,volume:5198900},{date:'April 7, 2005',open:188.78,high:194.62,low:188.64,close:193.76,volume:9650000},{date:'April 8, 2005',open:193.69,high:195.10,low:191.45,close:192.05,volume:5087700},{date:'April 11, 2005',open:193.09,high:194.80,low:192.32,close:193.23,volume:5344500},{date:'April 12, 2005',open:193.00,high:194.42,low:189.41,close:193.96,volume:7292600},{date:'April 13, 2005',open:193.47,high:194.32,low:189.73,close:192.93,volume:6492000},{date:'April 14, 2005',open:193.27,high:194.36,low:190.10,close:191.45,volume:6103700},{date:'April 15, 2005',open:190.10,high:190.34,low:184.66,close:185.00,volume:11351400},{date:'April 18, 2005',open:184.58,high:187.88,low:183.49,close:186.97,volume:6528000},{date:'April 19, 2005',open:189.33,high:192.00,low:188.03,close:191.40,volume:7307800},{date:'April 20, 2005',open:198.58,high:200.50,low:195.91,close:198.10,volume:15251300},{date:'April 21, 2005',open:200.42,high:205.00,low:199.32,close:204.22,volume:12997100},{date:'April 22, 2005',open:222.90,high:224.00,low:214.26,close:215.81,volume:32759000},{date:'April 25, 2005',open:217.82,high:224.74,low:217.52,close:223.53,volume:19715800},{date:'April 26, 2005',open:220.22,high:222.00,low:218.29,close:218.75,volume:17152000},{date:'April 27, 2005',open:217.99,high:220.85,low:216.74,close:219.78,volume:10229600},{date:'April 28, 2005',open:219.50,high:222.08,low:217.71,close:219.45,volume:8641600},{date:'April 29, 2005',open:221.91,high:222.25,low:217.82,close:220.00,volume:9082200},{date:'May 2, 2005',open:222.05,high:223.70,low:220.21,close:222.29,volume:9671300},{date:'May 3, 2005',open:221.85,high:228.15,low:221.32,close:226.19,volume:17684300},{date:'May 4, 2005',open:227.23,high:229.88,low:227.00,close:228.50,volume:11920300},{date:'May 5, 2005',open:228.62,high:228.62,low:225.88,close:226.98,volume:7484900},{date:'May 6, 2005',open:228.40,high:229.25,low:226.47,close:228.02,volume:6693200},{date:'May 9, 2005',open:228.00,high:228.50,low:225.43,close:226.02,volume:5513800},{date:'May 10, 2005',open:225.47,high:227.80,low:224.72,close:227.80,volume:6117500},{date:'May 11, 2005',open:228.97,high:231.98,low:227.93,close:231.29,volume:10858300},{date:'May 12, 2005',open:230.81,high:232.23,low:228.20,close:228.72,volume:8902800},{date:'May 13, 2005',open:229.18,high:231.09,low:227.32,close:229.24,volume:7381500},{date:'May 16, 2005',open:229.68,high:231.62,low:228.57,close:231.05,volume:5630900},{date:'May 17, 2005',open:230.56,high:233.45,low:230.20,close:233.13,volume:7762700},{date:'May 18, 2005',open:233.61,high:239.97,low:233.52,close:239.16,volume:12223900},{date:'May 19, 2005',open:240.34,high:241.17,low:238.27,close:239.18,volume:9640100},{date:'May 20, 2005',open:241.21,high:241.67,low:239.65,close:241.61,volume:7895800},{date:'May 23, 2005',open:243.16,high:258.10,low:242.71,close:255.45,volume:21223600},{date:'May 24, 2005',open:256.96,high:265.44,low:253.50,close:256.00,volume:28948500},{date:'May 25, 2005',open:252.73,high:260.98,low:250.63,close:260.81,volume:17743400},{date:'May 26, 2005',open:260.96,high:263.76,low:258.30,close:259.20,volume:13402700},{date:'May 27, 2005',open:260.46,high:266.05,low:259.25,close:266.00,volume:12088600},{date:'May 31, 2005',open:269.43,high:278.40,low:269.37,close:277.27,volume:21497800},{date:'June 1, 2005',open:283.20,high:292.89,low:282.02,close:288.00,volume:34900300},{date:'June 2, 2005',open:288.73,high:289.78,low:284.60,close:287.90,volume:17704500},{date:'June 3, 2005',open:286.79,high:289.30,low:277.41,close:280.26,volume:18703400},{date:'June 6, 2005',open:282.39,high:293.75,low:281.83,close:290.94,volume:22406100},{date:'June 7, 2005',open:297.10,high:299.59,low:290.30,close:293.12,volume:24206200},{date:'June 8, 2005',open:292.85,high:293.19,low:278.00,close:279.56,volume:25191400},{date:'June 9, 2005',open:284.72,high:288.50,low:280.56,close:286.31,volume:16319900},{date:'June 10, 2005',open:286.99,high:287.28,low:280.02,close:282.50,volume:12509400},{date:'June 13, 2005',open:279.82,high:284.19,low:276.52,close:282.75,volume:12683500},{date:'June 14, 2005',open:278.59,high:281.24,low:277.75,close:278.35,volume:9985700},{date:'June 15, 2005',open:275.00,high:277.30,low:267.43,close:274.80,volume:20776300},{date:'June 16, 2005',open:274.26,high:278.30,low:273.07,close:277.44,volume:12206800},{date:'June 17, 2005',open:279.00,high:280.30,low:275.90,close:280.30,volume:9951200},{date:'June 20, 2005',open:276.09,high:287.67,low:271.73,close:286.70,volume:20910500},{date:'June 21, 2005',open:288.07,high:290.30,low:284.97,close:287.84,volume:15069700},{date:'June 22, 2005',open:289.67,high:292.32,low:288.67,close:289.30,volume:10277000},{date:'June 23, 2005',open:288.00,high:294.81,low:286.50,close:289.71,volume:13929300},{date:'June 24, 2005',open:290.90,high:298.00,low:289.58,close:297.25,volume:16652500},{date:'June 27, 2005',open:298.90,high:304.47,low:293.86,close:304.10,volume:17619200},{date:'June 28, 2005',open:306.28,high:309.25,low:302.00,close:302.00,volume:18812000},{date:'June 29, 2005',open:302.50,high:304.38,low:292.15,close:292.72,volume:18143700},{date:'June 30, 2005',open:294.34,high:298.93,low:291.04,close:294.15,volume:14820100},{date:'July 1, 2005',open:295.04,high:296.24,low:289.22,close:291.25,volume:9089900},{date:'July 5, 2005',open:292.10,high:295.98,low:290.23,close:295.71,volume:7433800},{date:'July 6, 2005',open:297.30,high:297.60,low:291.38,close:291.52,volume:7918000},{date:'July 7, 2005',open:289.39,high:295.80,low:288.51,close:295.54,volume:10583500},{date:'July 8, 2005',open:296.25,high:297.50,low:294.05,close:296.23,volume:7407700},{date:'July 11, 2005',open:296.40,high:296.60,low:291.02,close:293.35,volume:8311300},{date:'July 12, 2005',open:293.39,high:294.40,low:290.93,close:291.78,volume:5832800},{date:'July 13, 2005',open:292.51,high:299.24,low:292.10,close:298.86,volume:11284700},{date:'July 14, 2005',open:305.34,high:306.75,low:300.07,close:300.89,volume:10553100},{date:'July 15, 2005',open:301.24,high:303.40,low:299.78,close:301.19,volume:8026300},{date:'July 18, 2005',open:300.00,high:301.90,low:297.75,close:299.54,volume:6129600},{date:'July 19, 2005',open:302.10,high:310.35,low:301.80,close:309.90,volume:11233100},{date:'July 20, 2005',open:305.57,high:312.61,low:301.80,close:312.00,volume:13732700},{date:'July 21, 2005',open:314.05,high:317.80,low:311.21,close:313.94,volume:13611400},{date:'July 22, 2005',open:306.37,high:309.25,low:296.33,close:302.40,volume:23178900},{date:'July 25, 2005',open:302.39,high:303.29,low:294.96,close:295.85,volume:9585500},{date:'July 26, 2005',open:295.01,high:298.00,low:292.09,close:296.09,volume:9743400},{date:'July 27, 2005',open:297.74,high:298.23,low:292.40,close:296.93,volume:7164700},{date:'July 28, 2005',open:297.41,high:297.41,low:293.28,close:293.50,volume:5864300},{date:'July 29, 2005',open:292.14,high:292.84,low:286.99,close:287.76,volume:8269500},{date:'August 1, 2005',open:288.12,high:292.50,low:288.10,close:291.61,volume:5643900},{date:'August 2, 2005',open:291.60,high:299.52,low:291.12,close:299.19,volume:7244800},{date:'August 3, 2005',open:298.00,high:299.72,low:295.60,close:297.30,volume:5888700},{date:'August 4, 2005',open:295.55,high:299.00,low:295.25,close:297.73,volume:5209400},{date:'August 5, 2005',open:297.50,high:298.51,low:291.31,close:292.35,volume:5902500},{date:'August 8, 2005',open:293.60,high:295.65,low:290.49,close:291.25,volume:4441500},{date:'August 9, 2005',open:291.96,high:292.68,low:288.51,close:291.57,volume:5734800},{date:'August 10, 2005',open:291.30,high:292.33,low:284.88,close:285.68,volume:6827600},{date:'August 11, 2005',open:285.89,high:286.58,low:280.62,close:284.05,volume:7410400},{date:'August 12, 2005',open:283.36,high:290.20,low:281.64,close:289.72,volume:6540900},{date:'August 15, 2005',open:289.80,high:292.77,low:283.77,close:284.00,volume:8042700},{date:'August 16, 2005',open:284.88,high:287.79,low:283.34,close:285.65,volume:7051100},{date:'August 17, 2005',open:285.51,high:286.57,low:284.00,close:285.10,volume:3825300},{date:'August 18, 2005',open:275.91,high:280.50,low:275.00,close:279.99,volume:11788700},{date:'August 19, 2005',open:280.99,high:281.45,low:279.62,close:280.00,volume:5510400},{date:'August 22, 2005',open:281.24,high:281.47,low:273.35,close:274.01,volume:6784100},{date:'August 23, 2005',open:276.16,high:279.74,low:274.12,close:279.58,volume:5796600},{date:'August 24, 2005',open:277.57,high:284.75,low:276.45,close:282.57,volume:8504900},{date:'August 25, 2005',open:282.55,high:284.00,low:279.97,close:282.59,volume:4347100},{date:'August 26, 2005',open:283.48,high:285.02,low:282.66,close:283.58,volume:3735100},{date:'August 29, 2005',open:282.24,high:289.12,low:282.24,close:288.45,volume:5863400},{date:'August 30, 2005',open:287.39,high:289.51,low:285.88,close:287.27,volume:4757600},{date:'August 31, 2005',open:288.23,high:288.50,low:284.36,close:286.00,volume:4959300},{date:'September 1, 2005',open:285.91,high:287.50,low:285.00,close:286.25,volume:2720000},{date:'September 2, 2005',open:286.51,high:289.99,low:286.44,close:288.45,volume:3391200},{date:'September 6, 2005',open:289.00,high:289.39,low:286.80,close:287.11,volume:4184900},{date:'September 7, 2005',open:285.89,high:295.50,low:285.28,close:294.87,volume:7452800},{date:'September 8, 2005',open:294.83,high:299.28,low:293.36,close:295.39,volume:6594100},{date:'September 9, 2005',open:297.28,high:299.10,low:296.56,close:299.09,volume:4351700},{date:'September 12, 2005',open:301.75,high:311.42,low:301.00,close:309.74,volume:10310100},{date:'September 13, 2005',open:309.00,high:315.53,low:306.17,close:311.68,volume:10256300},{date:'September 14, 2005',open:308.73,high:313.28,low:300.30,close:303.00,volume:11185000},{date:'September 15, 2005',open:299.52,high:306.75,low:297.91,close:302.62,volume:15377000},{date:'September 16, 2005',open:304.02,high:304.50,low:299.87,close:300.20,volume:7349700},{date:'September 19, 2005',open:301.00,high:306.00,low:300.71,close:303.79,volume:5742900},{date:'September 20, 2005',open:306.15,high:311.30,low:305.23,close:307.91,volume:9346400},{date:'September 21, 2005',open:308.41,high:313.76,low:305.96,close:311.90,volume:9776500},{date:'September 22, 2005',open:311.50,high:319.22,low:310.17,close:311.37,volume:12619900},{date:'September 23, 2005',open:313.00,high:317.21,low:312.59,close:315.36,volume:8339700},{date:'September 26, 2005',open:319.50,high:320.95,low:312.56,close:314.28,volume:9731600},{date:'September 27, 2005',open:314.95,high:318.41,low:313.38,close:313.94,volume:6819700},{date:'September 28, 2005',open:314.22,high:315.10,low:305.60,close:306.00,volume:7918200},{date:'September 29, 2005',open:306.68,high:310.72,low:306.08,close:309.62,volume:5542800},{date:'September 30, 2005',open:314.22,high:317.50,low:312.29,close:316.46,volume:8761600},{date:'October 3, 2005',open:313.63,high:320.11,low:312.79,close:318.68,volume:9117400},{date:'October 4, 2005',open:319.95,high:321.28,low:310.74,close:311.00,volume:9092600},{date:'October 5, 2005',open:312.69,high:314.90,low:308.00,close:310.71,volume:8279000},{date:'October 6, 2005',open:314.14,high:314.48,low:310.09,close:312.75,volume:7929500},{date:'October 7, 2005',open:314.79,high:316.67,low:310.54,close:312.99,volume:6742900},{date:'October 10, 2005',open:313.31,high:314.82,low:309.15,close:310.65,volume:5517400},{date:'October 11, 2005',open:310.61,high:312.65,low:304.86,close:306.10,volume:8484300},{date:'October 12, 2005',open:305.20,high:307.19,low:299.00,close:300.97,volume:9151200},{date:'October 13, 2005',open:302.00,high:302.00,low:290.68,close:297.44,volume:10544100},{date:'October 14, 2005',open:299.90,high:300.23,low:292.54,close:296.14,volume:8499100},{date:'October 17, 2005',open:297.50,high:305.20,low:294.56,close:305.00,volume:7507600},{date:'October 18, 2005',open:304.96,high:307.96,low:302.74,close:303.28,volume:6896400},{date:'October 19, 2005',open:304.00,high:309.87,low:303.96,close:308.70,volume:6872000},{date:'October 20, 2005',open:309.99,high:311.13,low:301.21,close:303.20,volume:7902100},{date:'October 21, 2005',open:345.80,high:346.43,low:333.00,close:339.90,volume:22440600},{date:'October 24, 2005',open:343.37,high:349.30,low:342.19,close:348.65,volume:9404400},{date:'October 25, 2005',open:345.78,high:347.40,low:342.86,close:346.91,volume:6847000},{date:'October 26, 2005',open:346.28,high:356.00,low:346.19,close:355.44,volume:8841700},{date:'October 27, 2005',open:356.60,high:357.09,low:351.68,close:353.06,volume:5101500},{date:'October 28, 2005',open:355.27,high:358.95,low:355.02,close:358.17,volume:5861900},{date:'October 31, 2005',open:360.24,high:374.75,low:359.51,close:372.14,volume:14245000},{date:'November 1, 2005',open:371.86,high:383.90,low:369.01,close:379.38,volume:16247000},{date:'November 2, 2005',open:381.70,high:385.00,low:377.17,close:379.68,volume:10526800},{date:'November 3, 2005',open:382.41,high:386.58,low:381.38,close:385.95,volume:7355100},{date:'November 4, 2005',open:389.98,high:391.79,low:385.45,close:390.43,volume:8744100},{date:'November 7, 2005',open:395.10,high:397.47,low:392.15,close:395.03,volume:9489300},{date:'November 8, 2005',open:394.25,high:395.59,low:388.58,close:389.90,volume:7857200},{date:'November 9, 2005',open:386.67,high:388.29,low:378.03,close:379.15,volume:10361600},{date:'November 10, 2005',open:378.36,high:391.35,low:377.43,close:391.10,volume:8973200},{date:'November 11, 2005',open:395.12,high:396.90,low:388.85,close:390.40,volume:6998300},{date:'November 14, 2005',open:392.12,high:398.22,low:391.53,close:396.97,volume:7642700},{date:'November 15, 2005',open:394.38,high:397.00,low:390.95,close:392.80,volume:8569500},{date:'November 16, 2005',open:396.20,high:398.85,low:394.11,close:398.15,volume:8561300},{date:'November 17, 2005',open:401.80,high:403.81,low:399.53,close:403.45,volume:9058400},{date:'November 18, 2005',open:403.49,high:404.50,low:399.85,close:400.21,volume:6845700},{date:'November 21, 2005',open:399.17,high:409.98,low:393.49,close:409.36,volume:10237000},{date:'November 22, 2005',open:408.65,high:417.31,low:406.23,close:416.47,volume:9539800},{date:'November 23, 2005',open:417.04,high:424.72,low:415.78,close:422.86,volume:9923900},{date:'November 25, 2005',open:425.78,high:428.75,low:425.30,close:428.62,volume:4791900},{date:'November 28, 2005',open:429.82,high:431.24,low:422.44,close:423.48,volume:10869500},{date:'November 29, 2005',open:424.46,high:426.40,low:402.14,close:403.54,volume:21200600},{date:'November 30, 2005',open:404.26,high:408.45,low:395.56,close:404.91,volume:15456200},{date:'December 1, 2005',open:409.20,high:415.44,low:408.29,close:414.09,volume:9480400},{date:'December 2, 2005',open:416.94,high:419.53,low:413.86,close:417.70,volume:7444000},{date:'December 5, 2005',open:417.00,high:417.50,low:404.28,close:405.85,volume:10095800},{date:'December 6, 2005',open:408.70,high:416.41,low:401.70,close:404.54,volume:15020200},{date:'December 7, 2005',open:406.16,high:406.70,low:399.01,close:404.22,volume:11428800},{date:'December 8, 2005',open:405.30,high:410.65,low:402.64,close:410.65,volume:8818100},{date:'December 9, 2005',open:415.00,high:415.78,low:408.56,close:409.20,volume:7538200},{date:'December 12, 2005',open:414.63,high:415.21,low:409.95,close:412.61,volume:6882800},{date:'December 13, 2005',open:412.50,high:418.00,low:411.64,close:417.49,volume:8059600},{date:'December 14, 2005',open:417.04,high:419.73,low:415.49,close:418.96,volume:6512200},{date:'December 15, 2005',open:419.11,high:423.14,low:416.50,close:422.53,volume:5932000},{date:'December 16, 2005',open:425.34,high:432.50,low:422.75,close:430.15,volume:13740500},{date:'December 19, 2005',open:432.20,high:446.21,low:420.11,close:424.60,volume:21815600},{date:'December 20, 2005',open:427.86,high:432.20,low:424.67,close:429.74,volume:9972900},{date:'December 21, 2005',open:433.55,high:436.86,low:420.71,close:426.33,volume:11167600},{date:'December 22, 2005',open:431.77,high:432.86,low:425.93,close:432.04,volume:7495600},{date:'December 23, 2005',open:432.15,high:432.50,low:428.78,close:430.93,volume:4552200},{date:'December 27, 2005',open:431.86,high:431.86,low:422.76,close:424.64,volume:6656900},{date:'December 28, 2005',open:424.34,high:427.78,low:421.26,close:426.69,volume:7207400},{date:'December 29, 2005',open:427.98,high:428.73,low:419.17,close:420.15,volume:6891300},{date:'December 30, 2005',open:417.27,high:418.21,low:413.74,close:414.86,volume:7499100},{date:'January 3, 2006',open:422.52,high:435.67,low:418.22,close:435.23,volume:12905700},{date:'January 4, 2006',open:443.90,high:448.96,low:439.75,close:445.24,volume:15100400},{date:'January 5, 2006',open:446.00,high:451.55,low:441.50,close:451.24,volume:10665200},{date:'January 6, 2006',open:456.87,high:470.50,low:453.24,close:465.66,volume:17622300},{date:'January 9, 2006',open:466.41,high:473.40,low:460.94,close:466.90,volume:12743900},{date:'January 10, 2006',open:464.42,high:470.25,low:462.04,close:469.76,volume:9034700},{date:'January 11, 2006',open:471.27,high:475.11,low:469.18,close:471.63,volume:8857000},{date:'January 12, 2006',open:473.72,high:474.99,low:461.50,close:463.63,volume:10041500},{date:'January 13, 2006',open:464.31,high:466.89,low:461.61,close:466.25,volume:7621900},{date:'January 17, 2006',open:463.06,high:469.90,low:462.53,close:467.11,volume:7176400},{date:'January 18, 2006',open:447.30,high:457.36,low:443.25,close:444.91,volume:20032100},{date:'January 19, 2006',open:451.17,high:453.49,low:433.00,close:436.45,volume:14451300},{date:'January 20, 2006',open:438.70,high:440.03,low:394.74,close:399.46,volume:40548700},{date:'January 23, 2006',open:407.38,high:428.39,low:405.73,close:427.50,volume:22482600},{date:'January 24, 2006',open:436.03,high:444.95,low:434.48,close:443.03,volume:15369100},{date:'January 25, 2006',open:451.26,high:454.23,low:429.22,close:433.00,volume:18596300},{date:'January 26, 2006',open:439.54,high:439.99,low:423.56,close:434.27,volume:12809100},{date:'January 27, 2006',open:435.00,high:438.22,low:428.98,close:433.49,volume:8395500},{date:'January 30, 2006',open:429.23,high:433.28,low:425.00,close:426.82,volume:8490800},{date:'January 31, 2006',open:430.57,high:439.60,low:423.97,close:432.66,volume:14396900},{date:'February 1, 2006',open:389.03,high:402.00,low:387.52,close:401.78,volume:26608600},{date:'February 2, 2006',open:403.82,high:406.50,low:395.98,close:396.04,volume:11503000},{date:'February 3, 2006',open:393.62,high:393.90,low:372.57,close:381.56,volume:18172500},{date:'February 6, 2006',open:385.31,high:389.90,low:379.56,close:385.10,volume:8851800},{date:'February 7, 2006',open:382.99,high:383.70,low:363.34,close:367.92,volume:16486500},{date:'February 8, 2006',open:368.48,high:370.69,low:354.67,close:369.08,volume:20686200},{date:'February 9, 2006',open:371.20,high:374.40,low:356.11,close:358.77,volume:11700100},{date:'February 10, 2006',open:361.95,high:364.50,low:353.14,close:362.61,volume:14751100},{date:'February 13, 2006',open:346.64,high:350.60,low:341.89,close:345.70,volume:19453100},{date:'February 14, 2006',open:345.33,high:351.69,low:342.40,close:343.32,volume:14522100},{date:'February 15, 2006',open:341.27,high:346.00,low:337.83,close:342.38,volume:12621400},{date:'February 16, 2006',open:345.67,high:367.00,low:344.49,close:366.46,volume:21105400},{date:'February 17, 2006',open:369.86,high:372.14,low:363.62,close:368.75,volume:14019100},{date:'February 21, 2006',open:366.44,high:373.54,low:365.11,close:366.59,volume:8367200},{date:'February 22, 2006',open:367.15,high:368.95,low:363.86,close:365.49,volume:6448600},{date:'February 23, 2006',open:365.61,high:381.24,low:365.39,close:378.07,volume:12498800},{date:'February 24, 2006',open:377.30,high:380.07,low:373.49,close:377.40,volume:6456400},{date:'February 27, 2006',open:381.27,high:391.70,low:380.28,close:390.38,volume:10130300},{date:'February 28, 2006',open:393.20,high:397.54,low:338.51,close:362.62,volume:39204500},{date:'March 1, 2006',open:368.56,high:369.45,low:361.30,close:364.80,volume:11967900},{date:'March 2, 2006',open:364.28,high:381.10,low:362.20,close:376.45,volume:17950400},{date:'March 3, 2006',open:384.30,high:387.24,low:375.76,close:378.18,volume:11797700},{date:'March 6, 2006',open:380.91,high:383.40,low:367.14,close:368.10,volume:8869400},{date:'March 7, 2006',open:364.59,high:368.45,low:358.15,close:364.45,volume:9812500},{date:'March 8, 2006',open:353.94,high:360.03,low:350.54,close:353.88,volume:11503400},{date:'March 9, 2006',open:355.59,high:358.53,low:341.50,close:343.00,volume:13794600},{date:'March 10, 2006',open:343.50,high:344.50,low:331.55,close:337.50,volume:19241200},{date:'March 13, 2006',open:340.93,high:346.10,low:335.45,close:337.06,volume:13589100},{date:'March 14, 2006',open:337.14,high:352.37,low:332.62,close:351.16,volume:18324300},{date:'March 15, 2006',open:350.77,high:352.30,low:340.53,close:344.50,volume:12633300},{date:'March 16, 2006',open:348.61,high:348.75,low:337.90,close:338.77,volume:9906700},{date:'March 17, 2006',open:338.80,high:341.78,low:334.93,close:339.79,volume:8426600},{date:'March 20, 2006',open:342.34,high:350.09,low:341.54,close:348.19,volume:10359500},{date:'March 21, 2006',open:350.01,high:351.66,low:339.08,close:339.92,volume:9762300},{date:'March 22, 2006',open:339.75,high:344.10,low:337.50,close:340.22,volume:7569000},{date:'March 23, 2006',open:342.35,high:345.75,low:340.20,close:341.89,volume:6117700},{date:'March 24, 2006',open:368.62,high:370.09,low:362.51,close:365.80,volume:14948200},{date:'March 27, 2006',open:367.09,high:371.71,low:365.00,close:369.69,volume:6973300},{date:'March 28, 2006',open:371.71,high:377.86,low:371.17,close:377.20,volume:8885500},{date:'March 29, 2006',open:379.94,high:399.00,low:379.51,close:394.98,volume:17942800},{date:'March 30, 2006',open:389.19,high:393.50,low:383.61,close:388.44,volume:14607200},{date:'March 31, 2006',open:388.74,high:391.87,low:384.03,close:390.00,volume:27961300},{date:'April 3, 2006',open:389.53,high:392.47,low:387.93,close:389.70,volume:8035300},{date:'April 4, 2006',open:389.90,high:404.90,low:388.14,close:404.34,volume:15606700},{date:'April 5, 2006',open:408.20,high:414.57,low:402.82,close:407.99,volume:13212500},{date:'April 6, 2006',open:406.49,high:413.89,low:405.43,close:411.18,volume:8558900},{date:'April 7, 2006',open:412.41,high:412.85,low:404.02,close:406.16,volume:6983200},{date:'April 10, 2006',open:407.08,high:417.17,low:405.25,close:416.38,volume:9241500},{date:'April 11, 2006',open:416.42,high:419.10,low:406.22,close:409.66,volume:11043400},{date:'April 12, 2006',open:409.00,high:411.33,low:405.19,close:408.95,volume:5993200},{date:'April 13, 2006',open:408.63,high:409.76,low:400.50,close:402.16,volume:6518100},{date:'April 17, 2006',open:403.45,high:412.50,low:400.84,close:406.82,volume:8236500},{date:'April 18, 2006',open:407.93,high:409.83,low:401.50,close:404.24,volume:7035700},{date:'April 19, 2006',open:412.57,high:413.64,low:406.73,close:410.50,volume:6677800},{date:'April 20, 2006',open:411.01,high:416.00,low:408.20,close:415.00,volume:7535900},{date:'April 21, 2006',open:448.90,high:450.72,low:436.17,close:437.10,volume:22234100},{date:'April 24, 2006',open:439.40,high:444.70,low:436.52,close:440.50,volume:8386900},{date:'April 25, 2006',open:439.63,high:441.04,low:426.00,close:427.16,volume:9469400},{date:'April 26, 2006',open:427.74,high:430.04,low:423.53,close:425.97,volume:7199000},{date:'April 27, 2006',open:422.91,high:426.91,low:419.39,close:420.03,volume:8197000},{date:'April 28, 2006',open:418.62,high:425.73,low:416.30,close:417.94,volume:7372400},{date:'May 1, 2006',open:418.47,high:419.44,low:398.55,close:398.90,volume:10222000},{date:'May 2, 2006',open:401.08,high:402.49,low:388.40,close:394.80,volume:13009200},{date:'May 3, 2006',open:396.35,high:401.50,low:390.88,close:394.17,volume:7764800},{date:'May 4, 2006',open:395.03,high:398.87,low:392.21,close:394.75,volume:4611300},{date:'May 5, 2006',open:397.60,high:400.68,low:391.78,close:394.30,volume:5990300},{date:'May 8, 2006',open:395.11,high:397.12,low:390.05,close:394.78,volume:5068000},{date:'May 9, 2006',open:395.70,high:409.00,low:393.75,close:408.80,volume:9001900},{date:'May 10, 2006',open:408.31,high:411.71,low:401.86,close:402.98,volume:6161100},{date:'May 11, 2006',open:403.42,high:404.71,low:384.98,close:387.00,volume:8870600},{date:'May 12, 2006',open:383.54,high:384.87,low:373.55,close:374.13,volume:10029800},{date:'May 15, 2006',open:375.93,high:380.15,low:368.25,close:376.20,volume:8554800},{date:'May 16, 2006',open:375.99,high:376.86,low:369.89,close:371.30,volume:5245200},{date:'May 17, 2006',open:370.61,high:379.84,low:370.22,close:374.50,volume:10418300},{date:'May 18, 2006',open:378.78,high:381.81,low:370.71,close:370.99,volume:5803600},{date:'May 19, 2006',open:373.28,high:374.50,low:360.57,close:370.02,volume:11293500},{date:'May 22, 2006',open:367.85,high:373.03,low:365.25,close:370.95,volume:8567000},{date:'May 23, 2006',open:374.21,high:383.88,low:373.56,close:375.58,volume:8925200},{date:'May 24, 2006',open:377.35,high:383.44,low:371.61,close:381.25,volume:9520100},{date:'May 25, 2006',open:379.08,high:383.00,low:372.31,close:382.99,volume:8133300},{date:'May 26, 2006',open:384.55,high:385.88,low:380.03,close:381.35,volume:3632300},{date:'May 30, 2006',open:378.28,high:381.00,low:371.45,close:371.94,volume:4273200},{date:'May 31, 2006',open:373.80,high:378.25,low:366.78,close:371.82,volume:7915700},{date:'June 1, 2006',open:373.54,high:382.99,low:371.60,close:382.62,volume:6239000},{date:'June 2, 2006',open:386.84,high:387.08,low:377.45,close:379.44,volume:6342600},{date:'June 5, 2006',open:376.18,high:381.45,low:374.15,close:374.44,volume:5524200},{date:'June 6, 2006',open:376.58,high:390.00,low:376.30,close:389.99,volume:10165700},{date:'June 7, 2006',open:393.24,high:394.86,low:386.50,close:386.51,volume:8464000},{date:'June 8, 2006',open:387.75,high:394.27,low:378.59,close:393.30,volume:10328800},{date:'June 9, 2006',open:392.19,high:395.43,low:385.35,close:386.57,volume:6123300},{date:'June 12, 2006',open:388.34,high:390.49,low:381.00,close:381.54,volume:4988500},{date:'June 13, 2006',open:380.90,high:387.00,low:378.12,close:386.52,volume:7628500},{date:'June 14, 2006',open:389.83,high:391.10,low:378.52,close:384.39,volume:7737200},{date:'June 15, 2006',open:386.62,high:392.25,low:383.00,close:391.00,volume:6738700},{date:'June 16, 2006',open:389.10,high:390.93,low:388.00,close:390.70,volume:5153100},{date:'June 19, 2006',open:390.85,high:394.80,low:386.98,close:388.14,volume:6985300},{date:'June 20, 2006',open:388.03,high:391.87,low:386.51,close:387.17,volume:4008800},{date:'June 21, 2006',open:391.06,high:404.00,low:389.75,close:402.13,volume:8625500},{date:'June 22, 2006',open:401.58,high:406.00,low:388.00,close:399.95,volume:5980100},{date:'June 23, 2006',open:402.76,high:409.75,low:400.74,close:404.86,volume:5282500},{date:'June 26, 2006',open:406.75,high:408.30,low:403.25,close:404.22,volume:3524800},{date:'June 27, 2006',open:405.71,high:408.00,low:401.01,close:402.32,volume:4085100},{date:'June 28, 2006',open:404.01,high:406.48,low:401.13,close:406.11,volume:3687000},{date:'June 29, 2006',open:407.99,high:418.20,low:405.82,close:417.81,volume:6617900},{date:'June 30, 2006',open:415.60,high:419.33,low:412.33,close:419.33,volume:5577200},{date:'July 3, 2006',open:420.04,high:423.77,low:419.45,close:423.20,volume:2132400},{date:'July 5, 2006',open:421.52,high:422.80,low:415.64,close:421.46,volume:4932600},{date:'July 6, 2006',open:423.38,high:425.38,low:421.98,close:423.19,volume:3653800},{date:'July 7, 2006',open:426.05,high:427.89,low:415.88,close:420.45,volume:5964900},{date:'July 10, 2006',open:423.44,high:425.23,low:416.38,close:418.20,volume:4420400},{date:'July 11, 2006',open:418.50,high:425.05,low:413.03,close:424.56,volume:5949400},{date:'July 12, 2006',open:422.09,high:422.74,low:416.73,close:417.25,volume:4867700},{date:'July 13, 2006',open:414.00,high:418.34,low:406.83,close:408.83,volume:6894400},{date:'July 14, 2006',open:410.33,high:411.49,low:398.61,close:403.50,volume:7430500},{date:'July 17, 2006',open:404.62,high:411.00,low:403.72,close:407.89,volume:5798600},{date:'July 18, 2006',open:409.75,high:410.57,low:397.74,close:403.05,volume:7373500},{date:'July 19, 2006',open:395.01,high:401.14,low:394.66,close:399.00,volume:8180600},{date:'July 20, 2006',open:404.28,high:404.44,low:385.66,close:387.12,volume:9075200},{date:'July 21, 2006',open:386.14,high:391.75,low:377.69,close:390.11,volume:11524300},{date:'July 24, 2006',open:392.82,high:393.89,low:381.21,close:390.90,volume:7857100},{date:'July 25, 2006',open:385.02,high:391.31,low:383.80,close:389.36,volume:5722200},{date:'July 26, 2006',open:388.20,high:391.91,low:383.00,close:385.50,volume:5401700},{date:'July 27, 2006',open:387.37,high:387.49,low:377.95,close:382.40,volume:5617900},{date:'July 28, 2006',open:382.00,high:389.56,low:381.73,close:388.12,volume:4075700},{date:'July 31, 2006',open:388.00,high:389.17,low:383.31,close:386.60,volume:4477200},{date:'August 1, 2006',open:385.11,high:385.77,low:375.51,close:375.51,volume:5397400},{date:'August 2, 2006',open:375.60,high:377.17,low:365.20,close:367.23,volume:7008100},{date:'August 3, 2006',open:364.98,high:377.91,low:363.36,close:375.39,volume:6303500},{date:'August 4, 2006',open:379.56,high:380.68,low:371.75,close:373.85,volume:5080700},{date:'August 7, 2006',open:371.50,high:379.73,low:371.15,close:377.95,volume:3789100},{date:'August 8, 2006',open:382.82,high:384.50,low:379.09,close:381.00,volume:5690900},{date:'August 9, 2006',open:383.71,high:384.68,low:376.36,close:376.94,volume:4249100},{date:'August 10, 2006',open:374.36,high:377.67,low:372.46,close:374.20,volume:4247000},{date:'August 11, 2006',open:374.40,high:375.28,low:368.00,close:368.50,volume:3744300},{date:'August 14, 2006',open:371.50,high:375.13,low:368.67,close:369.43,volume:4946400},{date:'August 15, 2006',open:374.11,high:381.67,low:372.60,close:380.97,volume:6607100},{date:'August 16, 2006',open:383.48,high:388.45,low:382.12,close:387.72,volume:5814600},{date:'August 17, 2006',open:386.99,high:390.00,low:383.92,close:385.80,volume:5060200},{date:'August 18, 2006',open:386.31,high:387.09,low:380.75,close:383.36,volume:4911000},{date:'August 21, 2006',open:378.10,high:379.00,low:375.22,close:377.30,volume:4000900},{date:'August 22, 2006',open:377.73,high:379.26,low:374.84,close:378.29,volume:4144500},{date:'August 23, 2006',open:377.64,high:378.27,low:372.66,close:373.43,volume:3611300},{date:'August 24, 2006',open:374.44,high:376.40,low:372.26,close:373.73,volume:3466200},{date:'August 25, 2006',open:373.08,high:375.32,low:372.50,close:373.26,volume:2461300},{date:'August 28, 2006',open:375.61,high:380.95,low:375.00,close:380.95,volume:4151800},{date:'August 29, 2006',open:380.78,high:382.32,low:377.20,close:378.95,volume:4007800},{date:'August 30, 2006',open:379.21,high:384.65,low:378.51,close:380.75,volume:4069100},{date:'August 31, 2006',open:381.49,high:382.15,low:378.20,close:378.53,volume:2916400},{date:'September 1, 2006',open:381.00,high:381.28,low:377.19,close:378.60,volume:2660000},{date:'September 5, 2006',open:379.87,high:385.40,low:377.44,close:384.36,volume:4062400},{date:'September 6, 2006',open:382.10,high:383.19,low:379.66,close:380.14,volume:3712600},{date:'September 7, 2006',open:379.39,high:381.75,low:377.40,close:378.49,volume:3719600},{date:'September 8, 2006',open:376.72,high:380.79,low:376.72,close:377.85,volume:3066000},{date:'September 11, 2006',open:378.26,high:384.69,low:377.77,close:384.09,volume:4500000},{date:'September 12, 2006',open:385.00,high:392.73,low:384.88,close:391.90,volume:5427400},{date:'September 13, 2006',open:395.15,high:406.76,low:395.10,close:406.57,volume:9644400},{date:'September 14, 2006',open:404.30,high:406.28,low:401.93,close:403.98,volume:5337400},{date:'September 15, 2006',open:407.48,high:410.05,low:406.74,close:409.88,volume:7488000},{date:'September 18, 2006',open:409.78,high:418.69,low:409.47,close:414.69,volume:7076700},{date:'September 19, 2006',open:415.46,high:415.49,low:392.74,close:403.81,volume:14181600},{date:'September 20, 2006',open:407.10,high:407.39,low:394.62,close:397.00,volume:9086800},{date:'September 21, 2006',open:400.35,high:408.45,low:399.86,close:406.85,volume:10653500},{date:'September 22, 2006',open:404.98,high:407.45,low:401.36,close:403.78,volume:4638400},{date:'September 25, 2006',open:405.58,high:409.45,low:402.50,close:403.98,volume:5588200},{date:'September 26, 2006',open:405.50,high:407.68,low:401.77,close:406.87,volume:5250300},{date:'September 27, 2006',open:406.30,high:411.22,low:402.37,close:402.92,volume:5805700},{date:'September 28, 2006',open:404.08,high:406.98,low:400.54,close:403.58,volume:5061400},{date:'September 29, 2006',open:405.12,high:405.62,low:401.41,close:401.90,volume:3275600},{date:'October 2, 2006',open:401.90,high:406.00,low:400.80,close:401.44,volume:3629800},{date:'October 3, 2006',open:401.29,high:406.46,low:398.19,close:404.04,volume:5432700},{date:'October 4, 2006',open:404.97,high:415.77,low:403.05,close:415.70,volume:6493200},{date:'October 5, 2006',open:414.70,high:418.24,low:410.86,close:411.81,volume:5533400},{date:'October 6, 2006',open:410.22,high:421.91,low:409.75,close:420.50,volume:7271300},{date:'October 9, 2006',open:424.80,high:431.95,low:423.42,close:429.00,volume:7013200},{date:'October 10, 2006',open:431.56,high:437.85,low:422.39,close:426.65,volume:9524400},{date:'October 11, 2006',open:425.02,high:429.91,low:423.76,close:426.50,volume:5586000},{date:'October 12, 2006',open:428.56,high:429.68,low:424.00,close:427.44,volume:4801800},{date:'October 13, 2006',open:427.76,high:429.50,low:425.56,close:427.30,volume:3594100},{date:'October 16, 2006',open:427.70,high:429.20,low:421.34,close:421.75,volume:4271100},{date:'October 17, 2006',open:420.30,high:423.75,low:416.70,close:420.64,volume:4763600},{date:'October 18, 2006',open:423.00,high:424.75,low:417.50,close:419.31,volume:5880800},{date:'October 19, 2006',open:420.23,high:454.91,low:419.57,close:426.06,volume:7594600},{date:'October 20, 2006',open:458.99,high:460.10,low:453.59,close:459.67,volume:10872800},{date:'October 23, 2006',open:462.28,high:484.64,low:460.37,close:480.78,volume:14367700},{date:'October 24, 2006',open:476.28,high:477.86,low:471.41,close:473.31,volume:8349200},{date:'October 25, 2006',open:477.49,high:488.50,low:475.11,close:486.60,volume:8973900},{date:'October 26, 2006',open:487.68,high:491.96,low:484.20,close:485.10,volume:6894000},{date:'October 27, 2006',open:483.90,high:485.24,low:472.49,close:475.20,volume:6495900},{date:'October 30, 2006',open:474.82,high:480.46,low:470.01,close:476.57,volume:6484600},{date:'October 31, 2006',open:478.06,high:482.16,low:473.84,close:476.39,volume:6197200},{date:'November 1, 2006',open:478.76,high:479.13,low:465.26,close:467.50,volume:5318200},{date:'November 2, 2006',open:467.50,high:473.73,low:466.38,close:469.91,volume:5040900},{date:'November 3, 2006',open:472.23,high:473.75,low:465.06,close:471.80,volume:4844200},{date:'November 6, 2006',open:473.77,high:479.66,low:472.33,close:476.95,volume:4934600},{date:'November 7, 2006',open:476.96,high:479.02,low:471.77,close:472.57,volume:4833900},{date:'November 8, 2006',open:470.35,high:481.74,low:468.60,close:475.00,volume:7872700},{date:'November 9, 2006',open:476.50,high:479.49,low:471.86,close:472.63,volume:4811700},{date:'November 10, 2006',open:473.78,high:474.72,low:470.29,close:473.55,volume:2742300},{date:'November 13, 2006',open:474.90,high:481.17,low:474.14,close:481.03,volume:4293600},{date:'November 14, 2006',open:480.70,high:489.95,low:480.50,close:489.30,volume:7053200},{date:'November 15, 2006',open:493.43,high:499.85,low:491.93,close:491.93,volume:8056600},{date:'November 16, 2006',open:495.00,high:497.68,low:492.56,close:495.90,volume:4893900},{date:'November 17, 2006',open:493.25,high:499.66,low:493.00,close:498.79,volume:5237900},{date:'November 20, 2006',open:498.40,high:498.40,low:492.65,close:495.05,volume:5002600},{date:'November 21, 2006',open:496.54,high:510.00,low:495.83,close:509.65,volume:8317200},{date:'November 22, 2006',open:510.97,high:513.00,low:505.78,close:508.01,volume:4381300},{date:'November 24, 2006',open:504.50,high:507.50,low:504.00,close:505.00,volume:1657700},{date:'November 27, 2006',open:501.37,high:501.78,low:484.75,close:484.75,volume:7194200},{date:'November 28, 2006',open:481.13,high:489.86,low:477.03,close:489.50,volume:7654400},{date:'November 29, 2006',open:494.24,high:494.74,low:482.25,close:484.65,volume:6157200},{date:'November 30, 2006',open:484.19,high:490.40,low:481.55,close:484.81,volume:5493900},{date:'December 1, 2006',open:485.98,high:488.39,low:478.50,close:480.80,volume:5545900},{date:'December 4, 2006',open:483.00,high:487.43,low:479.35,close:484.85,volume:4822600},{date:'December 5, 2006',open:487.40,high:489.44,low:484.89,close:487.00,volume:4020300},{date:'December 6, 2006',open:486.96,high:492.40,low:484.52,close:488.71,volume:4390200},{date:'December 7, 2006',open:490.23,high:491.80,low:482.42,close:482.64,volume:4597500},{date:'December 8, 2006',open:481.94,high:488.60,low:480.00,close:484.11,volume:3889900},{date:'December 11, 2006',open:484.92,high:488.90,low:483.80,close:483.93,volume:3215200},{date:'December 12, 2006',open:483.85,high:486.36,low:480.28,close:481.78,volume:4169900},{date:'December 13, 2006',open:484.69,high:485.50,low:477.02,close:478.99,volume:4591400},{date:'December 14, 2006',open:480.25,high:483.75,low:477.26,close:482.12,volume:4638000},{date:'December 15, 2006',open:482.64,high:484.11,low:479.84,close:480.30,volume:4244900},{date:'December 18, 2006',open:482.51,high:482.74,low:460.72,close:462.80,volume:7820000},{date:'December 19, 2006',open:461.72,high:469.31,low:458.50,close:468.63,volume:6428300},{date:'December 20, 2006',open:470.00,high:471.50,low:462.33,close:462.90,volume:4189500},{date:'December 21, 2006',open:464.18,high:465.25,low:452.34,close:456.20,volume:6864800},{date:'December 22, 2006',open:457.50,high:458.64,low:452.73,close:455.58,volume:3941900},{date:'December 26, 2006',open:456.52,high:459.47,low:454.59,close:457.53,volume:2024900},{date:'December 27, 2006',open:460.00,high:468.08,low:459.10,close:468.03,volume:4123500},{date:'December 28, 2006',open:467.12,high:468.58,low:462.25,close:462.56,volume:3063100},{date:'December 29, 2006',open:462.10,high:464.47,low:459.86,close:460.48,volume:2507700},{date:'January 3, 2007',open:466.00,high:476.66,low:461.11,close:467.59,volume:7527500},{date:'January 4, 2007',open:469.00,high:483.95,low:468.35,close:483.26,volume:7787700},{date:'January 5, 2007',open:482.50,high:487.50,low:478.11,close:487.19,volume:6769400},{date:'January 8, 2007',open:487.69,high:489.87,low:482.20,close:483.58,volume:4686900},{date:'January 9, 2007',open:485.45,high:488.25,low:481.20,close:485.50,volume:5339800},{date:'January 10, 2007',open:484.43,high:493.55,low:482.04,close:489.46,volume:5857600},{date:'January 11, 2007',open:497.20,high:501.75,low:496.18,close:499.72,volume:7001500},{date:'January 12, 2007',open:501.99,high:505.00,low:500.00,close:505.00,volume:4333000},{date:'January 16, 2007',open:507.55,high:513.00,low:503.30,close:504.28,volume:7446800},{date:'January 17, 2007',open:503.40,high:507.77,low:494.38,close:497.28,volume:6574900},{date:'January 18, 2007',open:494.52,high:496.48,low:487.43,close:487.83,volume:5858800},{date:'January 19, 2007',open:487.98,high:490.76,low:486.74,close:489.75,volume:4809500},{date:'January 22, 2007',open:492.50,high:492.65,low:478.50,close:480.84,volume:5305200},{date:'January 23, 2007',open:480.79,high:484.75,low:477.29,close:479.05,volume:4539600},{date:'January 24, 2007',open:484.45,high:499.54,low:483.29,close:499.07,volume:5862000},{date:'January 25, 2007',open:501.00,high:504.50,low:485.66,close:488.09,volume:6253100},{date:'January 26, 2007',open:490.93,high:497.90,low:487.03,close:495.84,volume:5415600},{date:'January 29, 2007',open:498.00,high:498.75,low:490.50,close:492.47,volume:4679300},{date:'January 30, 2007',open:494.00,high:498.00,low:491.22,close:494.32,volume:4112000},{date:'January 31, 2007',open:496.49,high:505.00,low:495.51,close:501.50,volume:8642900},{date:'February 1, 2007',open:506.00,high:506.01,low:481.53,close:481.75,volume:14373800},{date:'February 2, 2007',open:482.61,high:485.00,low:477.81,close:481.50,volume:6195000},{date:'February 5, 2007',open:477.50,high:478.00,low:466.19,close:467.16,volume:7117800},{date:'February 6, 2007',open:468.10,high:473.30,low:467.26,close:471.48,volume:5231700},{date:'February 7, 2007',open:473.82,high:474.35,low:468.78,close:470.01,volume:3781100},{date:'February 8, 2007',open:468.05,high:473.75,low:465.15,close:471.03,volume:4037100},{date:'February 9, 2007',open:471.65,high:472.68,low:461.50,close:461.89,volume:4825300},{date:'February 12, 2007',open:460.68,high:462.39,low:455.02,close:458.29,volume:5706700},{date:'February 13, 2007',open:459.16,high:462.78,low:457.26,close:459.10,volume:4008400},{date:'February 14, 2007',open:460.00,high:469.13,low:459.22,close:465.93,volume:5547300},{date:'February 15, 2007',open:466.00,high:466.13,low:460.72,close:461.47,volume:3996300},{date:'February 16, 2007',open:462.80,high:470.15,low:462.06,close:469.94,volume:5987000},{date:'February 20, 2007',open:468.47,high:472.75,low:464.71,close:472.10,volume:3978200},{date:'February 21, 2007',open:469.84,high:478.68,low:467.74,close:475.86,volume:5581000},{date:'February 22, 2007',open:478.69,high:484.24,low:474.39,close:475.85,volume:5668500},{date:'February 23, 2007',open:475.75,high:476.95,low:467.80,close:470.62,volume:3838200},{date:'February 26, 2007',open:472.83,high:475.25,low:463.75,close:464.93,volume:3911300},{date:'February 27, 2007',open:455.00,high:459.80,low:447.17,close:448.77,volume:9134700},{date:'February 28, 2007',open:450.41,high:453.67,low:443.04,close:449.45,volume:7884600},{date:'March 1, 2007',open:442.67,high:452.42,low:440.00,close:448.23,volume:8536200},{date:'March 2, 2007',open:445.11,high:448.70,low:438.68,close:438.68,volume:6527600},{date:'March 5, 2007',open:437.02,high:445.50,low:437.00,close:440.95,volume:6116300},{date:'March 6, 2007',open:447.47,high:459.00,low:447.38,close:457.55,volume:7311100},{date:'March 7, 2007',open:462.69,high:463.14,low:454.29,close:455.64,volume:6332900},{date:'March 8, 2007',open:459.22,high:465.50,low:454.10,close:454.72,volume:5271300},{date:'March 9, 2007',open:458.00,high:458.40,low:450.10,close:452.96,volume:4812300},{date:'March 12, 2007',open:452.57,high:455.25,low:451.11,close:454.75,volume:3366500},{date:'March 13, 2007',open:450.11,high:451.93,low:442.83,close:443.03,volume:6240700},{date:'March 14, 2007',open:443.23,high:448.66,low:439.00,close:448.00,volume:7882300},{date:'March 15, 2007',open:447.86,high:449.82,low:443.94,close:446.19,volume:3740000},{date:'March 16, 2007',open:445.65,high:446.70,low:439.89,close:440.85,volume:5252200},{date:'March 19, 2007',open:443.25,high:448.50,low:440.63,close:447.23,volume:5049000},{date:'March 20, 2007',open:445.79,high:447.60,low:443.60,close:445.28,volume:3291000},{date:'March 21, 2007',open:445.30,high:456.57,low:445.22,close:456.55,volume:5711000},{date:'March 22, 2007',open:455.61,high:462.17,low:452.53,close:462.04,volume:5528300},{date:'March 23, 2007',open:461.45,high:463.39,low:457.08,close:461.83,volume:4025500},{date:'March 26, 2007',open:460.55,high:465.00,low:455.62,close:465.00,volume:4633100},{date:'March 27, 2007',open:463.55,high:465.23,low:460.34,close:463.62,volume:3201200},{date:'March 28, 2007',open:461.87,high:465.44,low:460.15,close:461.88,volume:4450800},{date:'March 29, 2007',open:464.55,high:466.00,low:455.00,close:460.92,volume:3884400},{date:'March 30, 2007',open:462.10,high:463.40,low:456.14,close:458.16,volume:3264400},{date:'April 2, 2007',open:457.76,high:458.53,low:452.12,close:458.53,volume:3394400},{date:'April 3, 2007',open:464.05,high:474.25,low:464.00,close:472.60,volume:6328700},{date:'April 4, 2007',open:472.14,high:473.00,low:469.58,close:471.02,volume:3703800},{date:'April 5, 2007',open:471.30,high:472.09,low:469.62,close:471.51,volume:2679600},{date:'April 9, 2007',open:472.98,high:473.00,low:465.59,close:468.21,volume:2997000},{date:'April 10, 2007',open:467.09,high:470.79,low:465.16,close:466.50,volume:2946100},{date:'April 11, 2007',open:466.06,high:469.40,low:462.61,close:464.53,volume:3751400},{date:'April 12, 2007',open:464.00,high:468.00,low:462.24,close:467.39,volume:2670000},{date:'April 13, 2007',open:468.45,high:468.77,low:463.36,close:466.29,volume:2652800},{date:'April 16, 2007',open:468.46,high:476.99,low:468.15,close:474.27,volume:4980400},{date:'April 17, 2007',open:473.80,high:476.39,low:471.60,close:472.80,volume:3064500},{date:'April 18, 2007',open:471.26,high:479.90,low:469.53,close:476.01,volume:5495900},{date:'April 19, 2007',open:474.50,high:481.95,low:469.59,close:471.65,volume:7656400},{date:'April 20, 2007',open:490.52,high:492.50,low:482.02,close:482.48,volume:11352600},{date:'April 23, 2007',open:480.10,high:485.00,low:478.26,close:479.08,volume:5440400},{date:'April 24, 2007',open:478.61,high:479.98,low:475.55,close:477.53,volume:3648500},{date:'April 25, 2007',open:480.00,high:481.37,low:476.11,close:477.99,volume:3860800},{date:'April 26, 2007',open:478.10,high:484.45,low:477.11,close:481.18,volume:4010900},{date:'April 27, 2007',open:480.07,high:482.40,low:478.33,close:479.01,volume:2890800},{date:'April 30, 2007',open:479.15,high:481.35,low:471.38,close:471.38,volume:3538700},{date:'May 1, 2007',open:472.19,high:472.81,low:464.17,close:469.00,volume:3571300},{date:'May 2, 2007',open:468.65,high:471.08,low:465.73,close:465.78,volume:2981100},{date:'May 3, 2007',open:466.22,high:474.07,low:465.29,close:473.23,volume:3528800},{date:'May 4, 2007',open:470.12,high:474.84,low:465.88,close:471.12,volume:3769300},{date:'May 7, 2007',open:472.14,high:472.82,low:466.47,close:467.27,volume:2994900},{date:'May 8, 2007',open:466.13,high:468.17,low:464.73,close:466.81,volume:2869700},{date:'May 9, 2007',open:466.15,high:471.73,low:463.88,close:469.25,volume:3867800},{date:'May 10, 2007',open:467.04,high:469.49,low:461.02,close:461.47,volume:3654800},{date:'May 11, 2007',open:461.83,high:467.00,low:461.00,close:466.74,volume:2793400},{date:'May 14, 2007',open:465.48,high:467.51,low:460.00,close:461.78,volume:3014400},{date:'May 15, 2007',open:461.96,high:462.54,low:457.41,close:458.00,volume:4063800},{date:'May 16, 2007',open:462.00,high:473.14,low:459.02,close:472.61,volume:6296800},{date:'May 17, 2007',open:472.46,high:475.22,low:470.81,close:470.96,volume:4570400},{date:'May 18, 2007',open:472.03,high:472.70,low:469.75,close:470.32,volume:3297900},{date:'May 21, 2007',open:469.53,high:479.20,low:466.72,close:470.60,volume:6065000},{date:'May 22, 2007',open:473.00,high:479.01,low:473.00,close:475.86,volume:3770000},{date:'May 23, 2007',open:480.82,high:483.41,low:473.75,close:473.97,volume:4842400},{date:'May 24, 2007',open:475.15,high:479.20,low:471.50,close:474.33,volume:4117800},{date:'May 25, 2007',open:479.70,high:484.95,low:477.27,close:483.52,volume:5246400},{date:'May 29, 2007',open:485.00,high:491.80,low:484.00,close:487.11,volume:5147500},{date:'May 30, 2007',open:484.50,high:498.84,low:483.00,close:498.60,volume:6862700},{date:'May 31, 2007',open:500.56,high:508.78,low:497.06,close:497.91,volume:8599800},{date:'June 1, 2007',open:501.00,high:505.02,low:497.93,close:500.40,volume:4657400},{date:'June 4, 2007',open:497.91,high:510.51,low:497.59,close:507.07,volume:7036300},{date:'June 5, 2007',open:509.75,high:519.00,low:506.61,close:518.84,volume:10149600},{date:'June 6, 2007',open:516.75,high:520.78,low:515.26,close:518.25,volume:7690300},{date:'June 7, 2007',open:519.75,high:526.50,low:512.51,close:515.06,volume:10488400},{date:'June 8, 2007',open:516.20,high:519.64,low:509.46,close:515.49,volume:6232600},{date:'June 11, 2007',open:514.02,high:518.25,low:510.00,close:511.34,volume:4539500},{date:'June 12, 2007',open:508.71,high:511.67,low:503.17,close:504.77,volume:6147700},{date:'June 13, 2007',open:507.09,high:508.54,low:498.69,close:505.24,volume:6943300},{date:'June 14, 2007',open:505.38,high:505.88,low:501.70,close:502.84,volume:4523500},{date:'June 15, 2007',open:508.19,high:509.00,low:501.23,close:505.89,volume:5944900},{date:'June 18, 2007',open:506.18,high:516.00,low:504.24,close:515.20,volume:4763800},{date:'June 19, 2007',open:514.01,high:517.25,low:511.54,close:514.31,volume:4263400},{date:'June 20, 2007',open:516.96,high:518.75,low:509.06,close:509.97,volume:4256300},{date:'June 21, 2007',open:510.98,high:515.29,low:506.28,close:514.11,volume:4350100},{date:'June 22, 2007',open:516.42,high:524.99,low:516.10,close:524.98,volume:6768200},{date:'June 25, 2007',open:528.98,high:534.99,low:523.38,close:527.42,volume:7791000},{date:'June 26, 2007',open:532.73,high:533.20,low:526.24,close:530.26,volume:5488700},{date:'June 27, 2007',open:525.00,high:527.99,low:519.56,close:526.29,volume:6023400},{date:'June 28, 2007',open:524.88,high:529.50,low:523.80,close:525.01,volume:3814400},{date:'June 29, 2007',open:526.02,high:527.40,low:519.46,close:522.70,volume:3813400},{date:'July 2, 2007',open:525.49,high:531.85,low:524.20,close:530.38,volume:3362800},{date:'July 3, 2007',open:531.06,high:534.40,low:527.50,close:534.34,volume:1827000},{date:'July 5, 2007',open:535.56,high:544.40,low:532.15,close:541.63,volume:4867300},{date:'July 6, 2007',open:541.25,high:543.87,low:538.73,close:539.40,volume:2705900},{date:'July 9, 2007',open:543.00,high:548.74,low:540.26,close:542.56,volume:3617000},{date:'July 10, 2007',open:543.79,high:547.00,low:541.65,close:543.34,volume:3760000},{date:'July 11, 2007',open:543.61,high:546.50,low:540.01,close:544.47,volume:3267200},{date:'July 12, 2007',open:545.86,high:547.32,low:540.22,close:545.33,volume:3404000},{date:'July 13, 2007',open:547.91,high:552.67,low:547.25,close:552.16,volume:5033300},{date:'July 16, 2007',open:550.30,high:558.58,low:549.31,close:552.99,volume:6550000},{date:'July 17, 2007',open:555.04,high:557.73,low:552.38,close:555.00,volume:4211200},{date:'July 18, 2007',open:553.89,high:554.50,low:543.81,close:549.50,volume:5973900},{date:'July 19, 2007',open:553.46,high:553.52,low:542.24,close:548.59,volume:6477800},{date:'July 20, 2007',open:511.90,high:523.18,low:509.50,close:520.12,volume:16026500},{date:'July 23, 2007',open:519.01,high:520.00,low:512.15,close:512.51,volume:6227900},{date:'July 24, 2007',open:509.30,high:518.69,low:507.11,close:514.00,volume:5346600},{date:'July 25, 2007',open:516.98,high:517.02,low:505.56,close:509.76,volume:5453500},{date:'July 26, 2007',open:508.74,high:512.59,low:498.88,close:508.00,volume:6779400},{date:'July 27, 2007',open:508.53,high:516.62,low:505.50,close:511.89,volume:5361400},{date:'July 30, 2007',open:512.92,high:519.34,low:510.50,close:516.11,volume:3798800},{date:'July 31, 2007',open:520.23,high:520.44,low:510.00,close:510.00,volume:4159100},{date:'August 1, 2007',open:510.50,high:516.51,low:508.14,close:512.94,volume:4329800},{date:'August 2, 2007',open:513.72,high:514.99,low:509.00,close:511.01,volume:3117100},{date:'August 3, 2007',open:510.05,high:513.20,low:503.00,close:503.00,volume:3090600},{date:'August 6, 2007',open:503.00,high:510.15,low:502.50,close:510.00,volume:3582100},{date:'August 7, 2007',open:509.75,high:519.88,low:509.04,close:516.02,volume:4191400},{date:'August 8, 2007',open:519.34,high:525.78,low:517.09,close:525.78,volume:3955500},{date:'August 9, 2007',open:520.80,high:526.82,low:514.63,close:514.73,volume:4764500},{date:'August 10, 2007',open:510.18,high:518.72,low:505.63,close:515.75,volume:5000100},{date:'August 13, 2007',open:519.54,high:519.75,low:513.03,close:515.50,volume:3022500},{date:'August 14, 2007',open:515.17,high:517.40,low:508.00,close:508.60,volume:3574300},{date:'August 15, 2007',open:509.00,high:511.69,low:496.71,close:497.55,volume:5337100},{date:'August 16, 2007',open:492.02,high:496.43,low:480.46,close:491.52,volume:8438400},{date:'August 17, 2007',open:497.44,high:501.00,low:491.65,close:500.04,volume:5236600},{date:'August 20, 2007',open:502.46,high:502.56,low:496.00,close:497.92,volume:2589800},{date:'August 21, 2007',open:498.94,high:508.16,low:497.77,close:506.61,volume:3546200},{date:'August 22, 2007',open:509.96,high:516.25,low:509.25,close:512.75,volume:3076000},{date:'August 23, 2007',open:516.00,high:516.13,low:507.00,close:512.19,volume:2995400},{date:'August 24, 2007',open:512.61,high:515.55,low:508.50,close:515.00,volume:2447200},{date:'August 27, 2007',open:514.43,high:517.45,low:511.40,close:513.26,volume:2271800},{date:'August 28, 2007',open:511.53,high:514.98,low:505.79,close:506.40,volume:2889400},{date:'August 29, 2007',open:507.84,high:513.30,low:507.23,close:512.88,volume:2476800},{date:'August 30, 2007',open:512.36,high:515.40,low:510.58,close:511.40,volume:2583400},{date:'August 31, 2007',open:513.10,high:516.50,low:511.47,close:515.25,volume:2681700},{date:'September 4, 2007',open:515.02,high:528.00,low:514.62,close:525.15,volume:3633900},{date:'September 5, 2007',open:523.40,high:529.48,low:522.25,close:527.80,volume:3241700},{date:'September 6, 2007',open:529.36,high:529.83,low:518.24,close:523.52,volume:3576700},{date:'September 7, 2007',open:517.86,high:521.24,low:516.80,close:519.35,volume:3590700},{date:'September 10, 2007',open:521.28,high:522.07,low:510.88,close:514.48,volume:3198900},{date:'September 11, 2007',open:516.99,high:521.65,low:515.73,close:521.33,volume:2680300},{date:'September 12, 2007',open:520.53,high:527.98,low:519.00,close:522.65,volume:2946000},{date:'September 13, 2007',open:524.06,high:527.21,low:523.22,close:524.78,volume:1873300},{date:'September 14, 2007',open:523.20,high:530.27,low:522.22,close:528.75,volume:2723500},{date:'September 17, 2007',open:526.53,high:529.28,low:524.07,close:525.30,volume:2140600},{date:'September 18, 2007',open:526.52,high:537.25,low:524.27,close:535.27,volume:4107700},{date:'September 19, 2007',open:539.27,high:549.45,low:538.86,close:546.85,volume:5477500},{date:'September 20, 2007',open:547.00,high:556.80,low:546.03,close:552.83,volume:5485600},{date:'September 21, 2007',open:556.34,high:560.79,low:552.83,close:560.10,volume:6957000},{date:'September 24, 2007',open:561.00,high:571.46,low:560.00,close:568.02,volume:5210800},{date:'September 25, 2007',open:564.00,high:569.56,low:562.86,close:569.00,volume:2647400},{date:'September 26, 2007',open:570.40,high:571.79,low:563.81,close:568.16,volume:3234400},{date:'September 27, 2007',open:571.73,high:571.74,low:565.78,close:567.50,volume:1980100},{date:'September 28, 2007',open:567.00,high:569.55,low:564.12,close:567.27,volume:2448000},{date:'October 1, 2007',open:569.97,high:584.35,low:569.61,close:582.55,volume:4640000},{date:'October 2, 2007',open:583.38,high:596.81,low:580.01,close:584.39,volume:6838000},{date:'October 3, 2007',open:586.25,high:588.99,low:580.36,close:584.02,volume:3806000},{date:'October 4, 2007',open:585.09,high:585.09,low:577.06,close:579.03,volume:2931500},{date:'October 5, 2007',open:587.11,high:596.00,low:587.01,close:594.05,volume:4895400},{date:'October 8, 2007',open:595.00,high:610.26,low:593.95,close:609.62,volume:4980400},{date:'October 9, 2007',open:615.11,high:623.78,low:608.39,close:615.18,volume:8533500},{date:'October 10, 2007',open:621.36,high:625.68,low:616.80,close:625.39,volume:5190300},{date:'October 11, 2007',open:633.64,high:641.41,low:609.00,close:622.00,volume:11509700},{date:'October 12, 2007',open:623.98,high:638.40,low:618.24,close:637.39,volume:6652800},{date:'October 15, 2007',open:638.47,high:639.86,low:615.55,close:620.11,volume:6838600},{date:'October 16, 2007',open:618.49,high:625.92,low:611.99,close:616.00,volume:5661300},{date:'October 17, 2007',open:630.45,high:634.00,low:621.59,close:633.48,volume:5784700},{date:'October 18, 2007',open:635.41,high:641.37,low:628.50,close:639.62,volume:8650500},{date:'October 19, 2007',open:654.56,high:658.49,low:643.23,close:644.71,volume:14154000},{date:'October 22, 2007',open:638.67,high:655.00,low:636.28,close:650.75,volume:6490000},{date:'October 23, 2007',open:661.25,high:677.60,low:660.00,close:675.77,volume:6575800},{date:'October 24, 2007',open:672.71,high:677.47,low:659.56,close:675.82,volume:7324000},{date:'October 25, 2007',open:678.68,high:678.97,low:663.55,close:668.51,volume:5687900},{date:'October 26, 2007',open:674.03,high:676.54,low:668.06,close:674.60,volume:3258600},{date:'October 29, 2007',open:677.77,high:680.00,low:672.09,close:679.23,volume:3008400},{date:'October 30, 2007',open:677.51,high:699.91,low:677.51,close:694.77,volume:6798600},{date:'October 31, 2007',open:700.69,high:707.00,low:696.04,close:707.00,volume:6525900},{date:'November 1, 2007',open:702.59,high:713.72,low:701.78,close:703.21,volume:6407200},{date:'November 2, 2007',open:710.51,high:713.58,low:697.34,close:711.25,volume:5639100},{date:'November 5, 2007',open:706.99,high:730.23,low:706.07,close:725.65,volume:8778300},{date:'November 6, 2007',open:737.56,high:741.79,low:725.00,close:741.79,volume:8267700},{date:'November 7, 2007',open:741.13,high:747.24,low:723.14,close:732.94,volume:7997400},{date:'November 8, 2007',open:734.60,high:734.89,low:677.18,close:693.84,volume:15612500},{date:'November 9, 2007',open:675.78,high:681.88,low:661.21,close:663.97,volume:10487700},{date:'November 12, 2007',open:657.74,high:669.93,low:626.21,close:632.07,volume:10060700},{date:'November 13, 2007',open:644.99,high:660.92,low:642.00,close:660.55,volume:8181000},{date:'November 14, 2007',open:673.28,high:675.49,low:636.27,close:641.68,volume:7739800},{date:'November 15, 2007',open:638.57,high:647.50,low:624.00,close:629.65,volume:6871200},{date:'November 16, 2007',open:633.94,high:635.49,low:616.02,close:633.63,volume:8813800},{date:'November 19, 2007',open:629.59,high:636.77,low:618.50,close:625.85,volume:5459400},{date:'November 20, 2007',open:636.48,high:659.10,low:632.87,close:648.54,volume:9527300},{date:'November 21, 2007',open:643.77,high:669.97,low:642.08,close:660.52,volume:6931900},{date:'November 23, 2007',open:670.00,high:678.28,low:668.11,close:676.70,volume:2558000},{date:'November 26, 2007',open:680.20,high:693.40,low:665.00,close:666.00,volume:6420500},{date:'November 27, 2007',open:674.80,high:676.43,low:650.26,close:673.57,volume:8805500},{date:'November 28, 2007',open:682.11,high:694.30,low:672.14,close:692.26,volume:7750600},{date:'November 29, 2007',open:690.75,high:702.79,low:687.77,close:697.00,volume:6167400},{date:'November 30, 2007',open:711.00,high:711.06,low:682.11,close:693.00,volume:7697600},{date:'December 3, 2007',open:691.01,high:695.00,low:681.14,close:681.53,volume:4269900},{date:'December 4, 2007',open:678.31,high:692.00,low:677.12,close:684.16,volume:4157500},{date:'December 5, 2007',open:692.73,high:698.93,low:687.50,close:698.51,volume:4117400},{date:'December 6, 2007',open:697.80,high:716.56,low:697.01,close:715.26,volume:4850900},{date:'December 7, 2007',open:714.99,high:718.00,low:710.50,close:714.87,volume:3785200},{date:'December 10, 2007',open:715.99,high:724.80,low:714.00,close:718.42,volume:3184500},{date:'December 11, 2007',open:719.94,high:720.99,low:698.78,close:699.20,volume:5414700},{date:'December 12, 2007',open:714.00,high:714.32,low:688.50,close:699.35,volume:5991000},{date:'December 13, 2007',open:696.31,high:697.62,low:681.21,close:694.05,volume:5013900},{date:'December 14, 2007',open:687.51,high:699.70,low:687.26,close:689.96,volume:3636600},{date:'December 17, 2007',open:688.00,high:695.42,low:663.67,close:669.23,volume:5453000},{date:'December 18, 2007',open:674.16,high:676.71,low:652.50,close:673.35,volume:7029600},{date:'December 19, 2007',open:674.21,high:679.50,low:669.00,close:677.37,volume:4397100},{date:'December 20, 2007',open:685.83,high:691.00,low:680.61,close:689.69,volume:4295200},{date:'December 21, 2007',open:697.88,high:699.26,low:693.24,close:696.69,volume:5103700},{date:'December 24, 2007',open:694.99,high:700.73,low:693.06,close:700.73,volume:1503500},{date:'December 26, 2007',open:698.99,high:713.22,low:698.21,close:710.84,volume:2500600},{date:'December 27, 2007',open:707.07,high:716.00,low:700.74,close:700.74,volume:2921800},{date:'December 28, 2007',open:704.93,high:707.95,low:696.54,close:702.53,volume:2503100},{date:'December 31, 2007',open:698.57,high:702.49,low:690.58,close:691.48,volume:2336300},{date:'January 2, 2008',open:692.87,high:697.37,low:677.73,close:685.19,volume:4247000},{date:'January 3, 2008',open:685.26,high:686.85,low:676.52,close:685.33,volume:3202600},{date:'January 4, 2008',open:679.69,high:680.96,low:655.00,close:657.00,volume:5273500},{date:'January 7, 2008',open:653.94,high:662.28,low:637.35,close:649.25,volume:6282100},{date:'January 8, 2008',open:653.00,high:659.96,low:631.00,close:631.68,volume:5248700},{date:'January 9, 2008',open:630.04,high:653.34,low:622.51,close:653.20,volume:6677200},{date:'January 10, 2008',open:645.01,high:657.20,low:640.11,close:646.73,volume:6207900},{date:'January 11, 2008',open:642.70,high:649.47,low:630.11,close:638.25,volume:4946700},{date:'January 14, 2008',open:651.14,high:657.40,low:645.25,close:653.82,volume:4355600},{date:'January 15, 2008',open:645.90,high:649.05,low:635.38,close:637.65,volume:5290800},{date:'January 16, 2008',open:628.97,high:639.99,low:601.93,close:615.95,volume:10478800},{date:'January 17, 2008',open:620.76,high:625.74,low:598.01,close:600.79,volume:8104500},{date:'January 18, 2008',open:608.36,high:609.99,low:598.45,close:600.25,volume:8265800},{date:'January 22, 2008',open:562.03,high:597.50,low:561.20,close:584.35,volume:9000100},{date:'January 23, 2008',open:560.71,high:568.00,low:519.00,close:548.62,volume:16687700},{date:'January 24, 2008',open:558.80,high:579.69,low:554.14,close:574.49,volume:9156200},{date:'January 25, 2008',open:591.81,high:595.00,low:566.18,close:566.40,volume:6831100},{date:'January 28, 2008',open:570.97,high:572.24,low:548.60,close:555.98,volume:5752900},{date:'January 29, 2008',open:560.47,high:561.33,low:540.67,close:550.52,volume:6028300},{date:'January 30, 2008',open:549.19,high:560.43,low:543.51,close:548.27,volume:7817400},{date:'January 31, 2008',open:539.01,high:573.00,low:534.29,close:564.30,volume:10447200},{date:'February 1, 2008',open:528.67,high:536.67,low:510.00,close:515.90,volume:16711900},{date:'February 4, 2008',open:509.07,high:512.78,low:492.55,close:495.43,volume:12923200},{date:'February 5, 2008',open:489.43,high:509.00,low:488.52,close:506.80,volume:11023400},{date:'February 6, 2008',open:511.14,high:511.17,low:497.93,close:501.71,volume:7492300},{date:'February 7, 2008',open:496.86,high:514.19,low:494.76,close:504.95,volume:7830900},{date:'February 8, 2008',open:509.41,high:517.73,low:508.70,close:516.69,volume:6739400},{date:'February 11, 2008',open:520.52,high:523.71,low:513.40,close:521.16,volume:5758900},{date:'February 12, 2008',open:523.39,high:530.60,low:513.03,close:518.09,volume:6576800},{date:'February 13, 2008',open:522.50,high:534.99,low:518.69,close:534.62,volume:6090200},{date:'February 14, 2008',open:538.35,high:541.04,low:531.00,close:532.25,volume:6400800},{date:'February 15, 2008',open:528.31,high:532.66,low:524.33,close:529.64,volume:5080100},{date:'February 19, 2008',open:534.94,high:535.06,low:506.50,close:508.95,volume:6259400},{date:'February 20, 2008',open:503.51,high:511.01,low:498.82,close:509.00,volume:6556700},{date:'February 21, 2008',open:512.85,high:513.21,low:499.50,close:502.86,volume:5527300},{date:'February 22, 2008',open:502.06,high:509.00,low:497.55,close:507.80,volume:5445500},{date:'February 25, 2008',open:505.95,high:506.50,low:485.74,close:486.44,volume:8188300},{date:'February 26, 2008',open:461.20,high:466.47,low:446.85,close:464.19,volume:22296900},{date:'February 27, 2008',open:460.13,high:475.49,low:459.64,close:472.86,volume:9992200},{date:'February 28, 2008',open:470.50,high:479.09,low:467.36,close:475.39,volume:6308700},{date:'February 29, 2008',open:471.87,high:479.74,low:464.65,close:471.18,volume:9281700},{date:'March 3, 2008',open:471.51,high:472.72,low:450.11,close:457.02,volume:7495200},{date:'March 4, 2008',open:450.95,high:453.36,low:435.78,close:444.60,volume:13472400},{date:'March 5, 2008',open:445.25,high:454.17,low:444.00,close:447.70,volume:7288500},{date:'March 6, 2008',open:447.69,high:453.30,low:431.18,close:432.70,volume:7348000},{date:'March 7, 2008',open:428.88,high:440.00,low:426.24,close:433.35,volume:7930200},{date:'March 10, 2008',open:428.83,high:431.00,low:413.04,close:413.62,volume:7871400},{date:'March 11, 2008',open:425.26,high:440.15,low:424.65,close:439.84,volume:8520100},{date:'March 12, 2008',open:440.01,high:447.88,low:438.07,close:440.18,volume:6481500},{date:'March 13, 2008',open:432.67,high:446.98,low:428.78,close:443.01,volume:7647300},{date:'March 14, 2008',open:442.98,high:449.34,low:430.62,close:437.92,volume:6448000},{date:'March 17, 2008',open:427.99,high:433.71,low:412.11,close:419.87,volume:7794500},{date:'March 18, 2008',open:428.98,high:440.84,low:425.53,close:439.16,volume:7103700},{date:'March 19, 2008',open:441.11,high:447.50,low:431.67,close:432.00,volume:6062400},{date:'March 20, 2008',open:427.32,high:435.70,low:417.50,close:433.55,volume:9522900},{date:'March 24, 2008',open:438.43,high:465.78,low:437.72,close:460.56,volume:6714900},{date:'March 25, 2008',open:457.46,high:457.47,low:446.00,close:450.78,volume:5710500},{date:'March 26, 2008',open:452.59,high:462.87,low:449.29,close:458.19,volume:4919500},{date:'March 27, 2008',open:446.00,high:448.61,low:440.49,close:444.08,volume:5665800},{date:'March 28, 2008',open:447.46,high:453.57,low:434.31,close:438.08,volume:4322700},{date:'March 31, 2008',open:435.64,high:442.69,low:432.01,close:440.47,volume:4368800},{date:'April 1, 2008',open:447.74,high:466.50,low:446.87,close:465.71,volume:6027000},{date:'April 2, 2008',open:469.90,high:475.74,low:460.39,close:465.70,volume:5940600},{date:'April 3, 2008',open:461.73,high:463.29,low:448.13,close:455.12,volume:6391200},{date:'April 4, 2008',open:457.01,high:477.83,low:456.20,close:471.09,volume:5843300},{date:'April 7, 2008',open:477.03,high:485.44,low:473.53,close:476.82,volume:5800900},{date:'April 8, 2008',open:473.04,high:474.14,low:462.01,close:467.81,volume:4493800},{date:'April 9, 2008',open:469.13,high:472.00,low:457.54,close:464.19,volume:5961200},{date:'April 10, 2008',open:464.96,high:473.86,low:461.85,close:469.08,volume:5049400},{date:'April 11, 2008',open:464.07,high:467.26,low:455.01,close:457.45,volume:3791600},{date:'April 14, 2008',open:457.16,high:457.45,low:450.15,close:451.66,volume:3766400},{date:'April 15, 2008',open:458.13,high:459.72,low:443.72,close:446.84,volume:4436400},{date:'April 16, 2008',open:444.40,high:458.28,low:441.00,close:455.03,volume:7453000},{date:'April 17, 2008',open:455.63,high:459.37,low:446.52,close:449.54,volume:7133100},{date:'April 18, 2008',open:535.21,high:547.70,low:524.77,close:539.41,volume:16860300},{date:'April 21, 2008',open:539.39,high:542.59,low:530.29,close:537.79,volume:7254200},{date:'April 22, 2008',open:537.57,high:560.83,low:537.56,close:555.00,volume:7843800},{date:'April 23, 2008',open:557.94,high:559.31,low:540.95,close:546.49,volume:4798100},{date:'April 24, 2008',open:551.29,high:554.49,low:540.02,close:543.04,volume:4068400},{date:'April 25, 2008',open:549.02,high:553.00,low:542.73,close:544.06,volume:4022900},{date:'April 28, 2008',open:545.88,high:556.81,low:539.00,close:552.12,volume:3954200},{date:'April 29, 2008',open:550.83,high:563.40,low:550.01,close:558.47,volume:4276200},{date:'April 30, 2008',open:562.21,high:584.86,low:558.47,close:574.29,volume:7784100},{date:'May 1, 2008',open:578.31,high:594.93,low:576.97,close:593.08,volume:6555200},{date:'May 2, 2008',open:598.49,high:602.45,low:579.30,close:581.29,volume:6879300},{date:'May 5, 2008',open:598.86,high:599.00,low:587.13,close:594.90,volume:6091000},{date:'May 6, 2008',open:591.00,high:592.00,low:583.00,close:586.36,volume:4537100},{date:'May 7, 2008',open:590.27,high:599.49,low:576.43,close:579.00,volume:6541200},{date:'May 8, 2008',open:586.20,high:589.30,low:578.91,close:583.01,volume:5051200},{date:'May 9, 2008',open:579.00,high:585.00,low:571.30,close:573.20,volume:4446100},{date:'May 12, 2008',open:574.75,high:586.75,low:568.91,close:584.94,volume:4821300},{date:'May 13, 2008',open:586.23,high:587.95,low:578.55,close:583.00,volume:5061600},{date:'May 14, 2008',open:586.49,high:591.19,low:575.25,close:576.30,volume:4326600},{date:'May 15, 2008',open:579.00,high:582.95,low:575.61,close:581.00,volume:4296000},{date:'May 16, 2008',open:581.43,high:584.68,low:578.32,close:580.07,volume:4022100},{date:'May 19, 2008',open:578.55,high:588.88,low:573.52,close:577.52,volume:5565300},{date:'May 20, 2008',open:574.63,high:582.48,low:572.91,close:578.60,volume:3246600},{date:'May 21, 2008',open:578.52,high:581.41,low:547.89,close:549.99,volume:6301600},{date:'May 22, 2008',open:551.95,high:554.21,low:540.25,close:549.46,volume:4312200},{date:'May 23, 2008',open:546.96,high:553.00,low:537.81,close:544.62,volume:4394600},{date:'May 27, 2008',open:544.96,high:562.60,low:543.85,close:560.90,volume:3610700},{date:'May 28, 2008',open:567.94,high:571.49,low:561.10,close:568.24,volume:3976800},{date:'May 29, 2008',open:574.79,high:585.88,low:573.20,close:583.00,volume:4754900},{date:'May 30, 2008',open:583.47,high:589.92,low:581.30,close:585.80,volume:3136900},{date:'June 2, 2008',open:582.50,high:583.89,low:571.27,close:575.00,volume:3615700},{date:'June 3, 2008',open:576.50,high:580.50,low:560.61,close:567.30,volume:4268700},{date:'June 4, 2008',open:565.33,high:578.00,low:564.55,close:572.22,volume:3344000},{date:'June 5, 2008',open:577.08,high:588.04,low:576.21,close:586.30,volume:3897400},{date:'June 6, 2008',open:579.75,high:580.72,low:567.00,close:567.00,volume:4679900},{date:'June 9, 2008',open:568.06,high:570.00,low:545.40,close:557.87,volume:5267200},{date:'June 10, 2008',open:549.56,high:558.82,low:546.78,close:554.17,volume:3620100},{date:'June 11, 2008',open:556.24,high:557.34,low:544.46,close:545.20,volume:3776700},{date:'June 12, 2008',open:548.76,high:558.00,low:546.88,close:552.95,volume:5390700},{date:'June 13, 2008',open:561.49,high:575.70,low:561.34,close:571.51,volume:6060500},{date:'June 16, 2008',open:566.50,high:579.10,low:566.50,close:572.81,volume:3506400},{date:'June 17, 2008',open:576.35,high:578.07,low:568.38,close:569.46,volume:3434600},{date:'June 18, 2008',open:564.51,high:568.99,low:559.16,close:562.38,volume:3285800},{date:'June 19, 2008',open:555.35,high:563.78,low:550.81,close:560.20,volume:5587600},{date:'June 20, 2008',open:556.98,high:556.98,low:544.51,close:546.43,volume:5830600},{date:'June 23, 2008',open:545.36,high:553.15,low:542.02,close:545.21,volume:3597200},{date:'June 24, 2008',open:545.14,high:551.19,low:535.10,close:542.30,volume:4637000},{date:'June 25, 2008',open:544.97,high:557.80,low:543.67,close:551.00,volume:3911100},{date:'June 26, 2008',open:544.10,high:544.93,low:528.26,close:528.82,volume:5549400},{date:'June 27, 2008',open:527.68,high:530.00,low:515.09,close:528.07,volume:5073700},{date:'June 30, 2008',open:532.47,high:538.00,low:523.06,close:526.42,volume:3683000},{date:'July 1, 2008',open:519.58,high:536.72,low:517.00,close:534.73,volume:4874800},{date:'July 2, 2008',open:536.51,high:540.38,low:526.06,close:527.04,volume:4148700},{date:'July 3, 2008',open:530.88,high:539.23,low:527.50,close:537.00,volume:2368800},{date:'July 7, 2008',open:542.30,high:549.00,low:535.60,close:543.91,volume:4198600},{date:'July 8, 2008',open:545.99,high:555.19,low:540.00,close:554.53,volume:4406200},{date:'July 9, 2008',open:550.76,high:555.68,low:540.73,close:541.55,volume:4081100},{date:'July 10, 2008',open:545.00,high:549.50,low:530.72,close:540.57,volume:4263500},{date:'July 11, 2008',open:536.50,high:539.50,low:519.43,close:533.80,volume:4822900},{date:'July 14, 2008',open:539.00,high:540.06,low:515.45,close:521.62,volume:4398500},{date:'July 15, 2008',open:516.28,high:527.50,low:501.10,close:516.09,volume:6015000},{date:'July 16, 2008',open:514.04,high:536.50,low:510.60,close:535.60,volume:4674700},{date:'July 17, 2008',open:534.16,high:537.05,low:524.50,close:533.44,volume:5491200},{date:'July 18, 2008',open:498.35,high:498.98,low:478.19,close:481.32,volume:10783800},{date:'July 21, 2008',open:480.88,high:484.09,low:465.70,close:468.80,volume:5802900},{date:'July 22, 2008',open:466.72,high:480.25,low:465.60,close:477.11,volume:4619400},{date:'July 23, 2008',open:481.61,high:497.23,low:478.10,close:489.22,volume:4695400},{date:'July 24, 2008',open:496.70,high:496.87,low:475.62,close:475.62,volume:3466300},{date:'July 25, 2008',open:486.49,high:493.13,low:481.50,close:491.98,volume:3064300},{date:'July 28, 2008',open:492.09,high:492.09,low:475.13,close:477.12,volume:3121800},{date:'July 29, 2008',open:479.30,high:487.26,low:478.00,close:483.11,volume:2711800},{date:'July 30, 2008',open:485.50,high:486.02,low:472.81,close:482.70,volume:3459200},{date:'July 31, 2008',open:474.56,high:480.89,low:471.44,close:473.75,volume:2827400},{date:'August 1, 2008',open:472.51,high:473.22,low:462.50,close:467.86,volume:2969000},{date:'August 4, 2008',open:468.12,high:473.01,low:461.90,close:463.00,volume:2459100},{date:'August 5, 2008',open:467.59,high:480.08,low:466.33,close:479.85,volume:3510200},{date:'August 6, 2008',open:478.37,high:489.77,low:472.51,close:486.34,volume:3346000},{date:'August 7, 2008',open:482.00,high:484.00,low:476.41,close:479.12,volume:2711600},{date:'August 8, 2008',open:480.15,high:495.75,low:475.69,close:495.01,volume:3700900},{date:'August 11, 2008',open:492.47,high:508.88,low:491.78,close:500.84,volume:4199600},{date:'August 12, 2008',open:502.00,high:506.13,low:498.00,close:502.61,volume:2731100},{date:'August 13, 2008',open:501.60,high:503.54,low:493.88,close:500.03,volume:3602700},{date:'August 14, 2008',open:497.70,high:507.61,low:496.29,close:505.49,volume:2888200},{date:'August 15, 2008',open:506.99,high:510.66,low:505.50,close:510.15,volume:3487200},{date:'August 18, 2008',open:509.84,high:510.00,low:495.51,close:498.30,volume:3264000},{date:'August 19, 2008',open:490.43,high:498.28,low:486.63,close:490.50,volume:2970000},{date:'August 20, 2008',open:494.72,high:496.69,low:482.57,close:485.00,volume:3969700},{date:'August 21, 2008',open:482.92,high:489.90,low:479.27,close:486.53,volume:3437900},{date:'August 22, 2008',open:491.50,high:494.88,low:489.48,close:490.59,volume:2264900},{date:'August 25, 2008',open:486.11,high:497.00,low:481.50,close:483.01,volume:1975500},{date:'August 26, 2008',open:483.46,high:483.46,low:470.59,close:474.16,volume:3182200},{date:'August 27, 2008',open:473.73,high:474.83,low:464.84,close:468.58,volume:4354700},{date:'August 28, 2008',open:472.49,high:476.45,low:470.33,close:473.78,volume:3004500},{date:'August 29, 2008',open:469.75,high:471.01,low:462.33,close:463.29,volume:3768100},{date:'September 2, 2008',open:476.77,high:482.18,low:461.42,close:465.25,volume:6020400},{date:'September 3, 2008',open:468.73,high:474.29,low:459.58,close:464.41,volume:4281600},{date:'September 4, 2008',open:460.00,high:463.24,low:449.40,close:450.26,volume:4792700},{date:'September 5, 2008',open:445.49,high:452.46,low:440.08,close:444.25,volume:4470900},{date:'September 8, 2008',open:452.02,high:452.94,low:417.55,close:419.95,volume:8890500},{date:'September 9, 2008',open:423.17,high:432.38,low:415.00,close:418.66,volume:7143600},{date:'September 10, 2008',open:424.47,high:424.48,low:409.68,close:414.16,volume:6141100},{date:'September 11, 2008',open:408.35,high:435.09,low:406.38,close:433.75,volume:6401000},{date:'September 12, 2008',open:430.21,high:441.99,low:429.00,close:437.66,volume:5983600},{date:'September 15, 2008',open:424.00,high:441.97,low:423.71,close:433.86,volume:6490000},{date:'September 16, 2008',open:425.96,high:449.28,low:425.49,close:442.93,volume:6888400},{date:'September 17, 2008',open:438.48,high:439.14,low:413.44,close:414.49,volume:8953200},{date:'September 18, 2008',open:422.64,high:439.18,low:410.50,close:439.08,volume:8395600},{date:'September 19, 2008',open:461.00,high:462.07,low:443.28,close:449.15,volume:9552700},{date:'September 22, 2008',open:454.13,high:454.13,low:429.00,close:430.14,volume:4321000},{date:'September 23, 2008',open:433.25,high:440.79,low:425.72,close:429.27,volume:5106300},{date:'September 24, 2008',open:430.34,high:445.00,low:430.11,close:435.11,volume:4186300},{date:'September 25, 2008',open:438.84,high:450.00,low:435.98,close:439.60,volume:4919500},{date:'September 26, 2008',open:428.00,high:437.16,low:421.03,close:431.04,volume:5252400},{date:'September 29, 2008',open:419.51,high:423.51,low:380.71,close:381.00,volume:10623400},{date:'September 30, 2008',open:396.00,high:489.36,low:392.32,close:400.52,volume:9451900},{date:'October 1, 2008',open:411.15,high:416.98,low:403.10,close:411.72,volume:6082700},{date:'October 2, 2008',open:409.79,high:409.98,low:386.00,close:390.49,volume:5936400},{date:'October 3, 2008',open:397.35,high:412.50,low:383.07,close:386.91,volume:7925900},{date:'October 6, 2008',open:373.98,high:375.99,low:357.16,close:371.21,volume:11084200},{date:'October 7, 2008',open:373.33,high:374.98,low:345.37,close:346.01,volume:10807000},{date:'October 8, 2008',open:330.16,high:358.99,low:326.11,close:338.11,volume:11668000},{date:'October 9, 2008',open:344.52,high:348.57,low:321.67,close:328.98,volume:7982100},{date:'October 10, 2008',open:313.16,high:341.89,low:310.30,close:332.00,volume:10402000},{date:'October 13, 2008',open:355.79,high:381.95,low:345.75,close:381.02,volume:8733100},{date:'October 14, 2008',open:393.53,high:394.50,low:357.00,close:362.71,volume:7515800},{date:'October 15, 2008',open:354.65,high:359.00,low:338.83,close:339.17,volume:6614000},{date:'October 16, 2008',open:332.76,high:356.50,low:309.44,close:353.02,volume:13980400},{date:'October 17, 2008',open:378.96,high:386.00,low:363.55,close:372.54,volume:13881200},{date:'October 20, 2008',open:379.75,high:380.98,low:359.59,close:379.32,volume:6649600},{date:'October 21, 2008',open:372.39,high:383.78,low:362.00,close:362.75,volume:5628300},{date:'October 22, 2008',open:356.99,high:369.69,low:344.00,close:355.67,volume:6445200},{date:'October 23, 2008',open:353.65,high:358.00,low:337.99,close:352.32,volume:6404700},{date:'October 24, 2008',open:326.47,high:350.47,low:324.74,close:339.29,volume:7221800},{date:'October 27, 2008',open:334.81,high:343.00,low:325.60,close:329.49,volume:6134700},{date:'October 28, 2008',open:339.05,high:369.31,low:328.51,close:368.75,volume:7964800},{date:'October 29, 2008',open:365.79,high:371.00,low:352.37,close:358.00,volume:9656600},{date:'October 30, 2008',open:368.46,high:372.00,low:358.37,close:359.69,volume:7894700},{date:'October 31, 2008',open:356.16,high:371.96,low:354.27,close:359.36,volume:7299400},{date:'November 3, 2008',open:357.58,high:362.99,low:341.43,close:346.49,volume:5642900},{date:'November 4, 2008',open:353.44,high:372.36,low:345.50,close:366.94,volume:7277700},{date:'November 5, 2008',open:362.15,high:368.88,low:341.31,close:342.24,volume:6902100},{date:'November 6, 2008',open:339.97,high:344.42,low:325.81,close:331.22,volume:8186900},{date:'November 7, 2008',open:333.12,high:341.15,low:325.33,close:331.14,volume:4622900},{date:'November 10, 2008',open:328.00,high:329.44,low:309.47,close:318.78,volume:8097595},{date:'November 11, 2008',open:308.69,high:316.30,low:300.52,close:311.46,volume:10148785},{date:'November 12, 2008',open:302.05,high:312.49,low:287.76,close:291.00,volume:10054453},{date:'November 13, 2008',open:291.77,high:313.00,low:280.00,close:312.08,volume:13239068},{date:'November 14, 2008',open:303.25,high:324.99,low:302.56,close:310.02,volume:9518466},{date:'November 17, 2008',open:303.00,high:310.16,low:297.95,close:300.12,volume:7544451},{date:'November 18, 2008',open:301.57,high:303.73,low:285.35,close:297.42,volume:8348791},{date:'November 19, 2008',open:295.39,high:300.19,low:278.58,close:280.18,volume:7841605},{date:'November 20, 2008',open:274.89,high:282.94,low:259.04,close:259.56,volume:9780746},{date:'November 21, 2008',open:262.51,high:269.37,low:247.30,close:262.43,volume:10246338},{date:'November 24, 2008',open:269.26,high:269.95,low:249.01,close:257.44,volume:10059557},{date:'November 25, 2008',open:268.68,high:286.66,low:267.32,close:282.05,volume:10774259},{date:'November 26, 2008',open:280.28,high:295.46,low:276.20,close:292.09,volume:6359179},{date:'November 27, 2008',open:292.09,high:292.09,low:292.09,close:292.09,volume:0},{date:'November 28, 2008',open:290.58,high:296.45,low:288.28,close:292.96,volume:2566368},{date:'December 1, 2008',open:286.68,high:287.38,low:265.98,close:265.99,volume:5711464},{date:'December 2, 2008',open:269.73,high:277.78,low:262.58,close:275.11,volume:5841927},{date:'December 3, 2008',open:269.85,high:281.36,low:265.34,close:279.43,volume:5906616},{date:'December 4, 2008',open:276.53,high:283.49,low:268.77,close:274.34,volume:4887799},{date:'December 5, 2008',open:271.02,high:284.24,low:264.02,close:283.99,volume:6523543},{date:'December 8, 2008',open:289.99,high:309.44,low:282.00,close:302.11,volume:8145300},{date:'December 9, 2008',open:297.69,high:318.00,low:297.01,close:305.97,volume:6891773},{date:'December 10, 2008',open:309.24,high:314.90,low:304.51,close:308.82,volume:5239603},{date:'December 11, 2008',open:304.17,high:312.88,low:297.80,close:300.22,volume:6181078},{date:'December 12, 2008',open:295.71,high:316.47,low:294.00,close:315.76,volume:5722856},{date:'December 15, 2008',open:314.01,high:318.49,low:305.11,close:310.67,volume:6738806},{date:'December 16, 2008',open:314.52,high:329.50,low:311.27,close:325.28,volume:7199994},{date:'December 17, 2008',open:318.64,high:322.13,low:312.42,close:315.24,volume:5789689},{date:'December 18, 2008',open:316.70,high:320.35,low:309.11,close:310.28,volume:4764056},{date:'December 19, 2008',open:310.99,high:317.79,low:309.00,close:310.17,volume:5670140},{date:'December 22, 2008',open:308.56,high:309.50,low:290.63,close:297.11,volume:3919429},{date:'December 23, 2008',open:300.43,high:303.31,low:296.67,close:298.02,volume:3783790},{date:'December 24, 2008',open:301.48,high:306.34,low:298.38,close:302.95,volume:1921757},{date:'December 25, 2008',open:302.95,high:302.95,low:302.95,close:302.95,volume:0},{date:'December 26, 2008',open:304.07,high:305.26,low:298.31,close:300.36,volume:1961122},{date:'December 29, 2008',open:300.22,high:301.38,low:291.58,close:297.42,volume:3702166},{date:'December 30, 2008',open:300.80,high:306.81,low:298.71,close:303.11,volume:3845369},{date:'December 31, 2008',open:304.20,high:311.00,low:302.61,close:307.65,volume:2887334},{date:'January 1, 2009',open:307.65,high:307.65,low:307.65,close:307.65,volume:0},{date:'January 2, 2009',open:308.60,high:321.82,low:305.50,close:321.32,volume:3617574},{date:'January 5, 2009',open:321.00,high:331.24,low:315.00,close:328.05,volume:4891063},{date:'January 6, 2009',open:332.98,high:340.80,low:326.39,close:334.06,volume:6426845},{date:'January 7, 2009',open:328.32,high:330.91,low:318.75,close:322.01,volume:4495295},{date:'January 8, 2009',open:318.28,high:325.19,low:317.34,close:325.19,volume:3601466},{date:'January 9, 2009',open:327.50,high:327.50,low:313.40,close:315.07,volume:4341085},{date:'January 12, 2009',open:316.31,high:318.95,low:310.23,close:312.69,volume:3304863},{date:'January 13, 2009',open:311.77,high:320.60,low:310.39,close:314.32,volume:4433603},{date:'January 14, 2009',open:310.00,high:313.80,low:297.75,close:300.97,volume:5577379},{date:'January 15, 2009',open:297.57,high:303.58,low:286.79,close:298.99,volume:5936381},{date:'January 16, 2009',open:305.02,high:308.25,low:295.70,close:299.67,volume:5225959},{date:'January 20, 2009',open:299.14,high:299.50,low:282.75,close:282.75,volume:5050088},{date:'January 21, 2009',open:288.35,high:303.50,low:288.35,close:303.08,volume:4927534},{date:'January 22, 2009',open:298.04,high:309.35,low:295.15,close:306.50,volume:8266320},{date:'January 23, 2009',open:309.27,high:331.96,low:304.22,close:324.70,volume:10732775},{date:'January 26, 2009',open:324.85,high:328.00,low:320.56,close:323.87,volume:4611581},{date:'January 27, 2009',open:326.45,high:333.87,low:324.27,close:331.48,volume:4929544},{date:'January 28, 2009',open:337.98,high:352.33,low:336.31,close:348.67,volume:7693202},{date:'January 29, 2009',open:344.54,high:345.05,low:340.11,close:343.32,volume:7284342},{date:'January 30, 2009',open:344.69,high:348.80,low:336.00,close:338.53,volume:4672843},{date:'February 2, 2009',open:334.29,high:345.00,low:332.00,close:340.57,volume:5206915},{date:'February 3, 2009',open:342.57,high:343.00,low:333.83,close:340.45,volume:6561634},{date:'February 4, 2009',open:340.07,high:354.44,low:339.17,close:343.00,volume:6817851},{date:'February 5, 2009',open:340.91,high:355.38,low:337.00,close:353.72,volume:7265283},{date:'February 6, 2009',open:356.46,high:373.81,low:355.44,close:371.28,volume:7041797},{date:'February 9, 2009',open:371.28,high:381.00,low:367.30,close:378.77,volume:4983224},{date:'February 10, 2009',open:375.98,high:377.50,low:357.89,close:358.51,volume:7105831},{date:'February 11, 2009',open:358.95,high:365.00,low:353.00,close:358.04,volume:5232088},{date:'February 12, 2009',open:353.16,high:363.62,low:351.48,close:363.05,volume:5551383},{date:'February 13, 2009',open:362.19,high:362.99,low:355.23,close:357.68,volume:4147107},{date:'February 17, 2009',open:346.51,high:347.09,low:339.69,close:342.66,volume:5680732},{date:'February 18, 2009',open:347.24,high:353.38,low:340.52,close:353.11,volume:6025999},{date:'February 19, 2009',open:357.47,high:359.80,low:341.41,close:342.64,volume:4989553},{date:'February 20, 2009',open:338.05,high:348.92,low:335.00,close:346.45,volume:6217692},{date:'February 23, 2009',open:347.00,high:349.80,low:329.55,close:330.06,volume:5220506},{date:'February 24, 2009',open:331.02,high:349.62,low:330.89,close:345.45,volume:6101985},{date:'February 25, 2009',open:342.15,high:352.30,low:338.92,close:341.64,volume:6440776},{date:'February 26, 2009',open:345.96,high:352.49,low:337.16,close:337.18,volume:5607758},{date:'February 27, 2009',open:332.95,high:343.82,low:331.11,close:337.99,volume:5420892},{date:'March 2, 2009',open:333.33,high:340.70,low:326.00,close:327.16,volume:5789674},{date:'March 3, 2009',open:330.07,high:333.69,low:322.35,close:325.48,volume:6524207},{date:'March 4, 2009',open:323.16,high:329.00,low:315.38,close:318.92,volume:7820133},{date:'March 5, 2009',open:316.48,high:319.08,low:302.64,close:305.64,volume:6530631},{date:'March 6, 2009',open:307.22,high:310.19,low:294.25,close:308.57,volume:7238087},{date:'March 9, 2009',open:299.98,high:306.57,low:289.45,close:290.89,volume:6929592},{date:'March 10, 2009',open:298.25,high:310.50,low:294.25,close:308.17,volume:6731733},{date:'March 11, 2009',open:310.10,high:320.00,low:305.71,close:317.91,volume:5927178},{date:'March 12, 2009',open:317.54,high:325.00,low:313.65,close:323.53,volume:5026330},{date:'March 13, 2009',open:326.10,high:327.46,low:319.03,close:324.42,volume:3907609},{date:'March 16, 2009',open:325.99,high:329.73,low:318.59,close:319.69,volume:4947256},{date:'March 17, 2009',open:320.18,high:335.34,low:319.09,close:335.34,volume:4715786},{date:'March 18, 2009',open:334.81,high:340.00,low:328.05,close:333.10,volume:5013619},{date:'March 19, 2009',open:331.68,high:336.00,low:327.38,close:329.94,volume:4111476},{date:'March 20, 2009',open:330.30,high:332.99,low:326.34,close:330.16,volume:4738590},{date:'March 23, 2009',open:333.56,high:349.45,low:333.03,close:348.60,volume:4272085},{date:'March 24, 2009',open:346.50,high:353.84,low:344.00,close:347.16,volume:3821808},{date:'March 25, 2009',open:350.40,high:351.34,low:336.25,close:344.07,volume:4337117},{date:'March 26, 2009',open:353.13,high:359.16,low:348.50,close:353.29,volume:6004769},{date:'March 27, 2009',open:350.00,high:352.00,low:345.47,close:347.70,volume:3323401},{date:'March 30, 2009',open:342.55,high:343.81,low:336.06,close:342.69,volume:3096702},{date:'March 31, 2009',open:348.93,high:353.51,low:346.18,close:348.06,volume:3658421},{date:'April 1, 2009',open:343.78,high:355.24,low:340.61,close:354.09,volume:3303042},{date:'April 2, 2009',open:363.31,high:369.76,low:360.32,close:362.50,volume:4489367},{date:'April 3, 2009',open:364.50,high:371.72,low:358.00,close:369.78,volume:3770328},{date:'April 6, 2009',open:367.00,high:369.82,low:361.40,close:368.24,volume:3281760},{date:'April 7, 2009',open:362.60,high:363.75,low:355.31,close:358.65,volume:3681433},{date:'April 8, 2009',open:363.50,high:365.00,low:356.21,close:362.00,volume:2765142},{date:'April 9, 2009',open:369.50,high:374.35,low:366.25,close:372.50,volume:3383146},{date:'April 10, 2009',open:372.50,high:372.50,low:372.50,close:372.50,volume:0},{date:'April 13, 2009',open:371.33,high:379.10,low:370.30,close:378.11,volume:3050081},{date:'April 14, 2009',open:376.94,high:376.99,low:365.60,close:368.91,volume:3429359},{date:'April 15, 2009',open:367.10,high:381.06,low:364.16,close:379.50,volume:4935003},{date:'April 16, 2009',open:381.50,high:392.90,low:381.02,close:388.74,volume:10185094},{date:'April 17, 2009',open:386.02,high:399.82,low:384.81,close:392.24,volume:10734963},{date:'April 20, 2009',open:386.15,high:390.65,low:375.89,close:379.30,volume:4429555},{date:'April 21, 2009',open:376.17,high:384.30,low:376.10,close:381.47,volume:3697301},{date:'April 22, 2009',open:381.75,high:390.00,low:379.01,close:383.86,volume:3503616},{date:'April 23, 2009',open:387.51,high:389.75,low:381.11,close:384.69,volume:2611240},{date:'April 24, 2009',open:386.05,high:393.18,low:380.50,close:389.49,volume:3386147},{date:'April 27, 2009',open:384.34,high:389.49,low:382.75,close:385.95,volume:2291125},{date:'April 28, 2009',open:383.75,high:389.05,low:381.54,close:383.71,volume:2943938},{date:'April 29, 2009',open:385.97,high:394.97,low:385.83,close:391.47,volume:3610160},{date:'April 30, 2009',open:395.76,high:403.75,low:394.80,close:395.97,volume:4361069},{date:'May 1, 2009',open:395.03,high:397.59,low:391.55,close:393.69,volume:2428611},{date:'May 4, 2009',open:398.17,high:402.40,low:394.79,close:401.98,volume:3204843},{date:'May 5, 2009',open:399.98,high:405.00,low:397.25,close:402.99,volume:2401096},{date:'May 6, 2009',open:406.79,high:408.28,low:401.00,close:403.47,volume:2633743},{date:'May 7, 2009',open:404.10,high:404.99,low:392.50,close:396.61,volume:3000724},{date:'May 8, 2009',open:402.85,high:410.13,low:395.00,close:407.33,volume:3865597},{date:'May 11, 2009',open:402.80,high:412.00,low:401.20,close:407.98,volume:2560736},{date:'May 12, 2009',open:410.01,high:410.99,low:395.11,close:399.01,volume:3796453},{date:'May 13, 2009',open:394.09,high:396.39,low:388.35,close:389.54,volume:2852384},{date:'May 14, 2009',open:388.80,high:392.21,low:384.69,close:387.50,volume:2937904},{date:'May 15, 2009',open:391.10,high:394.11,low:389.09,close:390.00,volume:3016859},{date:'May 18, 2009',open:394.73,high:397.31,low:385.40,close:396.84,volume:3352055},{date:'May 19, 2009',open:396.10,high:401.64,low:393.00,close:398.88,volume:2837823},{date:'May 20, 2009',open:402.09,high:405.67,low:395.00,close:397.18,volume:2284191},{date:'May 21, 2009',open:396.30,high:402.84,low:393.84,close:396.50,volume:2720300},{date:'May 22, 2009',open:396.66,high:398.65,low:392.00,close:393.50,volume:1718843},{date:'May 26, 2009',open:391.95,high:405.00,low:390.00,close:404.36,volume:3104776},{date:'May 27, 2009',open:405.64,high:411.86,low:404.81,close:405.56,volume:3035892},{date:'May 28, 2009',open:408.68,high:411.62,low:404.61,close:410.40,volume:2668993},{date:'May 29, 2009',open:412.11,high:417.23,low:410.70,close:417.23,volume:2649405},{date:'June 1, 2009',open:418.73,high:429.60,low:418.53,close:426.56,volume:3323431},{date:'June 2, 2009',open:426.25,high:429.96,low:423.40,close:428.40,volume:2626012},{date:'June 3, 2009',open:426.00,high:432.46,low:424.00,close:431.65,volume:3535593},{date:'June 4, 2009',open:435.30,high:441.24,low:434.50,close:440.28,volume:3639434},{date:'June 5, 2009',open:445.07,high:447.34,low:439.46,close:444.32,volume:3681002},{date:'June 8, 2009',open:439.50,high:440.92,low:434.12,close:438.77,volume:3098931},{date:'June 9, 2009',open:438.58,high:440.50,low:431.76,close:435.62,volume:3255945},{date:'June 10, 2009',open:436.23,high:437.89,low:426.67,close:432.60,volume:3358870},{date:'June 11, 2009',open:431.77,high:433.73,low:428.37,close:429.00,volume:2866040},{date:'June 12, 2009',open:426.86,high:427.70,low:421.21,close:424.84,volume:2918429},{date:'June 15, 2009',open:421.50,high:421.50,low:414.00,close:416.77,volume:3737299},{date:'June 16, 2009',open:419.31,high:421.09,low:415.42,close:416.00,volume:3050261},{date:'June 17, 2009',open:416.19,high:419.72,low:411.56,close:415.16,volume:3490947},{date:'June 18, 2009',open:415.68,high:418.69,low:413.00,close:414.06,volume:3087653},{date:'June 19, 2009',open:418.21,high:420.46,low:414.58,close:420.09,volume:4261008},{date:'June 22, 2009',open:416.95,high:417.49,low:401.89,close:407.35,volume:4124360},{date:'June 23, 2009',open:406.65,high:408.99,low:402.55,close:405.68,volume:2899710},{date:'June 24, 2009',open:408.74,high:412.23,low:406.56,close:409.29,volume:2457992},{date:'June 25, 2009',open:407.00,high:415.90,low:406.51,close:415.77,volume:3042038},{date:'June 26, 2009',open:413.68,high:428.23,low:413.11,close:425.32,volume:3257482},{date:'June 29, 2009',open:426.00,high:427.80,low:422.24,close:424.14,volume:2169518},{date:'June 30, 2009',open:424.00,high:427.21,low:418.22,close:421.59,volume:2594683},{date:'July 1, 2009',open:424.20,high:426.40,low:418.15,close:418.99,volume:2310768},{date:'July 2, 2009',open:415.41,high:415.41,low:406.81,close:408.49,volume:2517630},{date:'July 3, 2009',open:408.49,high:408.49,low:408.49,close:408.49,volume:0},{date:'July 6, 2009',open:406.50,high:410.64,low:401.66,close:409.61,volume:2262557},{date:'July 7, 2009',open:408.24,high:409.19,low:395.98,close:396.63,volume:3260307},{date:'July 8, 2009',open:400.00,high:406.00,low:398.06,close:402.49,volume:3441854},{date:'July 9, 2009',open:406.12,high:414.45,low:405.80,close:410.39,volume:3275816},{date:'July 10, 2009',open:409.58,high:417.37,low:408.70,close:414.40,volume:2929559},{date:'July 13, 2009',open:416.17,high:424.52,low:415.18,close:424.30,volume:4047557},{date:'July 14, 2009',open:423.71,high:426.73,low:420.87,close:424.69,volume:2896461},{date:'July 15, 2009',open:429.66,high:438.68,low:428.49,close:438.17,volume:3779342},{date:'July 16, 2009',open:436.68,high:445.75,low:434.10,close:442.60,volume:6554412},{date:'July 17, 2009',open:433.00,high:435.48,low:426.70,close:430.25,volume:6854734},{date:'July 20, 2009',open:429.88,high:432.85,low:426.25,close:430.17,volume:3154002},{date:'July 21, 2009',open:430.94,high:431.90,low:425.72,close:427.90,volume:2969146},{date:'July 22, 2009',open:428.00,high:430.20,low:423.50,close:427.69,volume:2586960},{date:'July 23, 2009',open:428.68,high:441.21,low:425.50,close:437.34,volume:3479378},{date:'July 24, 2009',open:435.81,high:450.49,low:435.00,close:446.72,volume:3629454},{date:'July 27, 2009',open:446.04,high:446.75,low:437.61,close:444.80,volume:2505329},{date:'July 28, 2009',open:441.00,high:442.81,low:436.10,close:439.85,volume:2541052},{date:'July 29, 2009',open:437.23,high:437.80,low:431.88,close:436.24,volume:1987216},{date:'July 30, 2009',open:442.61,high:451.47,low:442.61,close:445.64,volume:3200547},{date:'July 31, 2009',open:449.98,high:452.70,low:442.43,close:443.05,volume:2861550},{date:'August 3, 2009',open:448.74,high:453.90,low:447.64,close:452.21,volume:2591173},{date:'August 4, 2009',open:449.37,high:454.00,low:448.43,close:453.73,volume:2390098},{date:'August 5, 2009',open:456.00,high:456.91,low:447.88,close:451.14,volume:2342227},{date:'August 6, 2009',open:454.30,high:454.88,low:448.53,close:450.36,volume:2111395},{date:'August 7, 2009',open:455.67,high:459.42,low:454.99,close:457.10,volume:2543392},{date:'August 10, 2009',open:455.14,high:458.41,low:453.79,close:456.61,volume:1741979},{date:'August 12, 2009',open:455.41,high:461.75,low:454.92,close:458.58,volume:2341768},{date:'August 13, 2009',open:462.15,high:464.72,low:458.91,close:462.28,volume:1995640},{date:'August 14, 2009',open:462.78,high:463.18,low:456.89,close:460.00,volume:1676559},{date:'August 17, 2009',open:451.50,high:451.99,low:443.12,close:444.89,volume:2620304},{date:'August 18, 2009',open:445.10,high:447.70,low:442.32,close:445.28,volume:2357493},{date:'August 19, 2009',open:439.99,high:445.00,low:438.56,close:443.97,volume:2260091},{date:'August 20, 2009',open:452.00,high:462.18,low:451.23,close:460.41,volume:4002454},{date:'August 21, 2009',open:465.54,high:466.09,low:462.65,close:465.24,volume:3564367},{date:'August 24, 2009',open:467.35,high:470.09,low:464.42,close:468.73,volume:2459325},{date:'August 25, 2009',open:469.13,high:474.35,low:468.72,close:471.37,volume:2343030},{date:'August 26, 2009',open:472.76,high:473.00,low:466.70,close:468.00,volume:1988449},{date:'August 27, 2009',open:468.58,high:468.58,low:460.73,close:466.06,volume:2000000},{date:'August 28, 2009',open:469.26,high:472.37,low:463.38,close:464.75,volume:1771808},{date:'August 31, 2009',open:459.79,high:461.86,low:458.00,close:461.67,volume:1957955},{date:'September 1, 2009',open:459.68,high:466.82,low:454.42,close:455.76,volume:2595091},{date:'September 2, 2009',open:455.82,high:458.33,low:452.59,close:453.01,volume:1806518},{date:'September 3, 2009',open:455.82,high:458.25,low:455.00,close:457.52,volume:1646354},{date:'September 4, 2009',open:457.57,high:462.60,low:455.78,close:461.30,volume:1499873},{date:'September 8, 2009',open:464.29,high:466.99,low:455.84,close:458.62,volume:2656609},{date:'September 9, 2009',open:459.06,high:466.27,low:458.80,close:463.97,volume:2195496},{date:'September 10, 2009',open:466.65,high:470.94,low:462.00,close:470.94,volume:2535304},{date:'September 11, 2009',open:470.40,high:473.30,low:467.63,close:472.14,volume:1902811},{date:'September 14, 2009',open:470.51,high:476.80,low:470.05,close:475.12,volume:1977667},{date:'September 15, 2009',open:475.08,high:478.91,low:472.71,close:477.54,volume:2398607},{date:'September 16, 2009',open:479.80,high:489.37,low:478.48,close:488.29,volume:2587367},{date:'September 17, 2009',open:490.57,high:497.37,low:487.15,close:491.72,volume:4483447},{date:'September 18, 2009',open:496.77,high:496.98,low:491.23,close:491.46,volume:3284248},{date:'September 21, 2009',open:487.74,high:498.90,low:486.22,close:497.00,volume:2117567},{date:'September 22, 2009',open:500.92,high:501.99,low:497.81,close:499.06,volume:3041830},{date:'September 23, 2009',open:500.78,high:507.00,low:497.71,close:498.81,volume:2700820},{date:'September 24, 2009',open:500.47,high:501.41,low:493.00,close:496.77,volume:2528646},{date:'September 25, 2009',open:494.29,high:499.93,low:492.00,close:492.48,volume:2052014},{date:'September 28, 2009',open:494.84,high:501.50,low:493.30,close:498.53,volume:1843168},{date:'September 29, 2009',open:499.53,high:499.75,low:493.01,close:498.53,volume:2099379},{date:'September 30, 2009',open:500.00,high:500.14,low:487.24,close:495.85,volume:3141701},{date:'October 1, 2009',open:493.00,high:496.47,low:487.00,close:487.20,volume:2816234},{date:'October 2, 2009',open:483.74,high:491.74,low:482.60,close:484.58,volume:2600805},{date:'October 5, 2009',open:487.65,high:492.43,low:483.34,close:488.52,volume:2144652},{date:'October 6, 2009',open:491.70,high:499.37,low:491.70,close:498.74,volume:2732977},{date:'October 7, 2009',open:499.00,high:518.99,low:497.81,close:517.54,volume:4877683},{date:'October 8, 2009',open:519.57,high:523.25,low:513.34,close:514.18,volume:4306504},{date:'October 9, 2009',open:516.65,high:521.51,low:514.50,close:516.25,volume:2739892},{date:'October 12, 2009',open:523.42,high:525.76,low:519.32,close:524.04,volume:3324320},{date:'October 13, 2009',open:524.39,high:527.46,low:521.38,close:526.11,volume:3042242},{date:'October 14, 2009',open:532.46,high:535.58,low:530.00,close:535.32,volume:3265055},{date:'October 15, 2009',open:533.75,high:536.90,low:527.27,close:529.91,volume:6100353},{date:'October 16, 2009',open:547.33,high:554.75,low:544.53,close:549.85,volume:8845714},{date:'October 19, 2009',open:552.69,high:553.60,low:548.73,close:552.09,volume:3220167},{date:'October 20, 2009',open:551.64,high:552.95,low:540.70,close:551.72,volume:4044439},{date:'October 21, 2009',open:549.91,high:559.35,low:549.00,close:551.10,volume:3673168},{date:'October 22, 2009',open:550.00,high:555.00,low:548.00,close:554.09,volume:2337087},{date:'October 23, 2009',open:555.25,high:557.89,low:551.20,close:553.69,volume:2393191},{date:'October 26, 2009',open:555.75,high:561.64,low:550.89,close:554.21,volume:2973706},{date:'October 27, 2009',open:550.97,high:554.56,low:544.16,close:548.29,volume:3218033},{date:'October 28, 2009',open:547.87,high:550.00,low:538.25,close:540.30,volume:2568660},{date:'October 29, 2009',open:543.01,high:551.83,low:541.00,close:551.05,volume:2518762},{date:'October 30, 2009',open:550.00,high:550.17,low:534.24,close:536.12,volume:3469738},{date:'November 2, 2009',open:537.08,high:539.46,low:528.24,close:533.99,volume:3202875},{date:'November 3, 2009',open:530.01,high:537.50,low:528.30,close:537.29,volume:2382892},{date:'November 4, 2009',open:540.80,high:545.50,low:536.42,close:540.33,volume:2333629},{date:'November 5, 2009',open:543.49,high:549.77,low:542.66,close:548.65,volume:1848039},{date:'November 6, 2009',open:547.72,high:551.78,low:545.50,close:551.10,volume:1826705},{date:'November 9, 2009',open:555.45,high:562.58,low:554.23,close:562.51,volume:2651426},{date:'November 10, 2009',open:562.73,high:568.78,low:562.00,close:566.76,volume:2231476},{date:'November 11, 2009',open:570.48,high:573.50,low:565.86,close:570.56,volume:2321856},{date:'November 12, 2009',open:569.56,high:572.90,low:565.50,close:567.85,volume:1886395},{date:'November 13, 2009',open:569.29,high:572.51,low:566.61,close:572.05,volume:1668092},{date:'November 16, 2009',open:575.00,high:576.99,low:572.78,close:576.28,volume:2199136},{date:'November 17, 2009',open:574.87,high:577.50,low:573.72,close:577.49,volume:1920765},{date:'November 18, 2009',open:576.65,high:578.78,low:572.07,close:576.65,volume:1550127},{date:'November 19, 2009',open:573.77,high:574.00,low:570.00,close:572.99,volume:2168302},{date:'November 20, 2009',open:569.50,high:571.60,low:569.40,close:569.96,volume:2006202},{date:'November 23, 2009',open:576.49,high:586.60,low:575.86,close:582.35,volume:2548562},{date:'November 24, 2009',open:582.50,high:584.29,low:576.54,close:583.09,volume:1608648},{date:'November 25, 2009',open:586.41,high:587.06,low:582.69,close:585.74,volume:1461405},{date:'November 26, 2009',open:585.74,high:585.74,low:585.74,close:585.74,volume:0},{date:'November 27, 2009',open:572.00,high:582.46,low:570.97,close:579.76,volume:1384523},{date:'November 30, 2009',open:580.63,high:583.67,low:577.11,close:583.00,volume:1725231},{date:'December 1, 2009',open:588.13,high:591.22,low:583.00,close:589.87,volume:2321273},{date:'December 2, 2009',open:590.98,high:593.01,low:586.22,close:587.51,volume:1665225},{date:'December 3, 2009',open:589.04,high:591.45,low:585.00,close:585.74,volume:1429399},{date:'December 4, 2009',open:593.02,high:594.83,low:579.18,close:585.01,volume:2514042},{date:'December 7, 2009',open:584.23,high:588.69,low:581.00,close:586.25,volume:1636587},{date:'December 8, 2009',open:583.50,high:590.66,low:582.00,close:587.05,volume:1525524},{date:'December 9, 2009',open:587.50,high:589.33,low:583.58,close:589.02,volume:1781288},{date:'December 10, 2009',open:590.44,high:594.71,low:590.41,close:591.50,volume:1669525},{date:'December 11, 2009',open:594.68,high:594.75,low:587.73,close:590.51,volume:1723378},{date:'December 14, 2009',open:595.24,high:597.31,low:592.61,close:595.73,volume:1913572},{date:'December 15, 2009',open:593.30,high:596.38,low:590.99,close:593.14,volume:2280340},{date:'December 16, 2009',open:598.91,high:600.37,low:596.64,close:597.76,volume:2809751},{date:'December 17, 2009',open:596.44,high:597.64,low:593.76,close:593.94,volume:2640762},{date:'December 18, 2009',open:596.03,high:598.93,low:595.00,close:596.42,volume:3532540},{date:'December 21, 2009',open:597.95,high:599.84,low:595.67,close:598.68,volume:2571981},{date:'December 22, 2009',open:601.34,high:601.50,low:598.85,close:601.12,volume:1884290},{date:'December 23, 2009',open:603.50,high:612.87,low:602.85,close:611.68,volume:2075311},{date:'December 24, 2009',open:612.93,high:619.52,low:612.27,close:618.48,volume:858620},{date:'December 25, 2009',open:618.48,high:618.48,low:618.48,close:618.48,volume:0},{date:'December 28, 2009',open:621.66,high:625.99,low:618.48,close:622.87,volume:1698015},{date:'December 29, 2009',open:624.74,high:624.84,low:618.29,close:619.40,volume:1427712},{date:'December 30, 2009',open:618.50,high:622.73,low:618.01,close:622.73,volume:1466379},{date:'December 31, 2009',open:624.75,high:625.40,low:619.98,close:619.98,volume:1220214},{date:'January 1, 2010',open:619.98,high:619.98,low:619.98,close:619.98,volume:0},{date:'January 4, 2010',open:626.95,high:629.51,low:624.24,close:626.75,volume:1957963},{date:'January 5, 2010',open:627.18,high:627.84,low:621.54,close:623.99,volume:3007857},{date:'January 6, 2010',open:625.86,high:625.86,low:606.36,close:608.26,volume:3980628},{date:'January 7, 2010',open:609.40,high:610.00,low:592.65,close:594.10,volume:6418020},{date:'January 8, 2010',open:592.00,high:603.25,low:589.11,close:602.02,volume:4724735},{date:'January 11, 2010',open:604.46,high:604.46,low:594.04,close:601.11,volume:7216804},{date:'January 12, 2010',open:598.08,high:598.16,low:588.00,close:590.48,volume:4853249},{date:'January 13, 2010',open:576.49,high:588.38,low:573.90,close:587.09,volume:6499074},{date:'January 14, 2010',open:583.90,high:594.20,low:582.81,close:589.85,volume:4241570},{date:'January 15, 2010',open:591.59,high:593.56,low:578.04,close:580.00,volume:5437698},{date:'January 18, 2010',open:580.00,high:580.00,low:580.00,close:580.00,volume:0},{date:'January 19, 2010',open:581.49,high:590.42,low:576.29,close:587.62,volume:4317143},{date:'January 20, 2010',open:585.98,high:585.98,low:575.29,close:580.41,volume:3253498},{date:'January 21, 2010',open:583.44,high:586.82,low:572.25,close:582.98,volume:6307634},{date:'January 22, 2010',open:564.50,high:570.60,low:534.86,close:550.01,volume:6807653},{date:'January 25, 2010',open:546.59,high:549.88,low:535.51,close:540.00,volume:4421012},{date:'January 26, 2010',open:537.97,high:549.60,low:536.29,close:542.42,volume:4356767},{date:'January 27, 2010',open:541.27,high:547.65,low:535.31,close:542.10,volume:3965467},{date:'January 28, 2010',open:544.49,high:547.00,low:530.60,close:534.29,volume:3231041},{date:'January 29, 2010',open:538.49,high:540.99,low:525.61,close:529.94,volume:4141196},{date:'February 1, 2010',open:534.60,high:535.81,low:530.30,close:533.02,volume:2253021},{date:'February 2, 2010',open:534.96,high:534.96,low:527.61,close:531.12,volume:4096305},{date:'February 3, 2010',open:528.67,high:542.10,low:528.23,close:540.82,volume:2999890},{date:'February 4, 2010',open:537.00,high:538.00,low:525.56,close:526.78,volume:3382732},{date:'February 5, 2010',open:528.40,high:533.50,low:522.46,close:531.29,volume:3157048},{date:'February 8, 2010',open:532.50,high:542.00,low:531.53,close:533.47,volume:2695412},{date:'February 9, 2010',open:539.54,high:541.53,low:535.07,close:536.44,volume:2828685},{date:'February 10, 2010',open:534.07,high:537.79,low:527.69,close:534.44,volume:2675794},{date:'February 11, 2010',open:532.25,high:540.49,low:529.50,close:536.40,volume:2411090},{date:'February 12, 2010',open:532.97,high:537.15,low:530.50,close:533.12,volume:2280371},{date:'February 15, 2010',open:533.12,high:533.12,low:533.12,close:533.12,volume:0},{date:'February 16, 2010',open:537.14,high:544.13,low:534.30,close:541.30,volume:3654824},{date:'February 17, 2010',open:542.00,high:543.40,low:537.61,close:538.21,volume:2030680},{date:'February 18, 2010',open:537.54,high:545.01,low:536.14,close:543.22,volume:2339250},{date:'February 19, 2010',open:541.00,high:544.03,low:539.70,close:540.76,volume:2555348},{date:'February 22, 2010',open:547.35,high:547.50,low:541.00,close:542.80,volume:2144741},{date:'February 23, 2010',open:543.00,high:543.63,low:532.29,close:535.07,volume:2874790},{date:'February 24, 2010',open:534.39,high:538.44,low:530.51,close:531.47,volume:2326901},{date:'February 25, 2010',open:527.12,high:528.49,low:520.00,close:526.43,volume:3309373},{date:'February 26, 2010',open:527.42,high:531.75,low:523.48,close:526.80,volume:2049372},{date:'March 1, 2010',open:529.20,high:533.29,low:527.74,close:532.69,volume:2238334},{date:'March 2, 2010',open:535.48,high:545.66,low:535.01,close:541.06,volume:4357461},{date:'March 3, 2010',open:542.36,high:548.12,low:539.25,close:545.32,volume:3090124},{date:'March 4, 2010',open:546.50,high:556.13,low:546.20,close:554.59,volume:3184077}];
+var priceData = [[0,100.34],[1,108.31],[2,109.40],[3,104.87],[4,106.00],[5,107.91],[6,106.15],[7,102.01],[8,102.37],[9,100.25],[10,101.51],[11,100.01],[12,101.58],[13,102.30],[14,102.31],[15,105.33],[16,107.50],[17,111.49],[18,112.00],[19,113.97],[20,117.49],[21,119.36],[22,117.84],[23,118.38],[24,120.82],[25,119.83],[26,118.26],[27,126.86],[28,131.08],[29,129.60],[30,132.58],[31,135.06],[32,138.37],[33,137.08],[34,138.85],[35,137.73],[36,135.26],[37,137.40],[38,140.90],[39,142.00],[40,144.11],[41,149.16],[42,147.94],[43,140.49],[44,149.38],[45,172.43],[46,187.40],[47,181.80],[48,185.97],[49,193.30],[50,190.64],[51,196.03],[52,194.87],[53,191.67],[54,184.70],[55,169.35],[56,172.55],[57,168.70],[58,167.86],[59,183.02],[60,182.00],[61,184.87],[62,172.54],[63,172.50],[64,167.54],[65,169.40],[66,165.10],[67,167.52],[68,174.76],[69,179.39],[70,181.05],[71,181.98],[72,179.96],[73,179.40],[74,180.40],[75,176.29],[76,171.43],[77,169.98],[78,173.43],[79,171.65],[80,170.45],[81,178.69],[82,179.78],[83,176.47],[84,180.08],[85,185.02],[86,183.75],[87,186.30],[88,187.90],[89,191.91],[90,192.76],[91,192.90],[92,197.60],[93,192.79],[94,202.71],[95,194.50],[96,193.51],[97,188.55],[98,193.85],[99,195.06],[100,193.54],[101,195.38],[102,195.33],[103,199.97],[104,203.90],[105,197.30],[106,193.92],[107,188.28],[108,180.72],[109,177.12],[110,189.24],[111,188.08],[112,190.34],[113,195.62],[114,191.90],[115,205.96],[116,210.86],[117,204.36],[118,196.03],[119,198.64],[120,191.58],[121,187.98],[122,187.40],[123,192.99],[124,195.23],[125,198.41],[126,197.90],[127,197.95],[128,191.37],[129,193.95],[130,188.89],[131,185.87],[132,187.99],[133,186.06],[134,185.18],[135,187.00],[136,185.90],[137,188.81],[138,185.20],[139,181.35],[140,179.98],[141,177.80],[142,174.99],[143,178.61],[144,175.60],[145,179.29],[146,180.04],[147,180.88],[148,178.60],[149,178.98],[150,179.25],[151,181.42],[152,179.57],[153,180.45],[154,180.51],[155,180.04],[156,185.29],[157,188.57],[158,189.22],[159,193.76],[160,192.05],[161,193.23],[162,193.96],[163,192.93],[164,191.45],[165,185.00],[166,186.97],[167,191.40],[168,198.10],[169,204.22],[170,215.81],[171,223.53],[172,218.75],[173,219.78],[174,219.45],[175,220.00],[176,222.29],[177,226.19],[178,228.50],[179,226.98],[180,228.02],[181,226.02],[182,227.80],[183,231.29],[184,228.72],[185,229.24],[186,231.05],[187,233.13],[188,239.16],[189,239.18],[190,241.61],[191,255.45],[192,256.00],[193,260.81],[194,259.20],[195,266.00],[196,277.27],[197,288.00],[198,287.90],[199,280.26],[200,290.94],[201,293.12],[202,279.56],[203,286.31],[204,282.50],[205,282.75],[206,278.35],[207,274.80],[208,277.44],[209,280.30],[210,286.70],[211,287.84],[212,289.30],[213,289.71],[214,297.25],[215,304.10],[216,302.00],[217,292.72],[218,294.15],[219,291.25],[220,295.71],[221,291.52],[222,295.54],[223,296.23],[224,293.35],[225,291.78],[226,298.86],[227,300.89],[228,301.19],[229,299.54],[230,309.90],[231,312.00],[232,313.94],[233,302.40],[234,295.85],[235,296.09],[236,296.93],[237,293.50],[238,287.76],[239,291.61],[240,299.19],[241,297.30],[242,297.73],[243,292.35],[244,291.25],[245,291.57],[246,285.68],[247,284.05],[248,289.72],[249,284.00],[250,285.65],[251,285.10],[252,279.99],[253,280.00],[254,274.01],[255,279.58],[256,282.57],[257,282.59],[258,283.58],[259,288.45],[260,287.27],[261,286.00],[262,286.25],[263,288.45],[264,287.11],[265,294.87],[266,295.39],[267,299.09],[268,309.74],[269,311.68],[270,303.00],[271,302.62],[272,300.20],[273,303.79],[274,307.91],[275,311.90],[276,311.37],[277,315.36],[278,314.28],[279,313.94],[280,306.00],[281,309.62],[282,316.46],[283,318.68],[284,311.00],[285,310.71],[286,312.75],[287,312.99],[288,310.65],[289,306.10],[290,300.97],[291,297.44],[292,296.14],[293,305.00],[294,303.28],[295,308.70],[296,303.20],[297,339.90],[298,348.65],[299,346.91],[300,355.44],[301,353.06],[302,358.17],[303,372.14],[304,379.38],[305,379.68],[306,385.95],[307,390.43],[308,395.03],[309,389.90],[310,379.15],[311,391.10],[312,390.40],[313,396.97],[314,392.80],[315,398.15],[316,403.45],[317,400.21],[318,409.36],[319,416.47],[320,422.86],[321,428.62],[322,423.48],[323,403.54],[324,404.91],[325,414.09],[326,417.70],[327,405.85],[328,404.54],[329,404.22],[330,410.65],[331,409.20],[332,412.61],[333,417.49],[334,418.96],[335,422.53],[336,430.15],[337,424.60],[338,429.74],[339,426.33],[340,432.04],[341,430.93],[342,424.64],[343,426.69],[344,420.15],[345,414.86],[346,435.23],[347,445.24],[348,451.24],[349,465.66],[350,466.90],[351,469.76],[352,471.63],[353,463.63],[354,466.25],[355,467.11],[356,444.91],[357,436.45],[358,399.46],[359,427.50],[360,443.03],[361,433.00],[362,434.27],[363,433.49],[364,426.82],[365,432.66],[366,401.78],[367,396.04],[368,381.56],[369,385.10],[370,367.92],[371,369.08],[372,358.77],[373,362.61],[374,345.70],[375,343.32],[376,342.38],[377,366.46],[378,368.75],[379,366.59],[380,365.49],[381,378.07],[382,377.40],[383,390.38],[384,362.62],[385,364.80],[386,376.45],[387,378.18],[388,368.10],[389,364.45],[390,353.88],[391,343.00],[392,337.50],[393,337.06],[394,351.16],[395,344.50],[396,338.77],[397,339.79],[398,348.19],[399,339.92],[400,340.22],[401,341.89],[402,365.80],[403,369.69],[404,377.20],[405,394.98],[406,388.44],[407,390.00],[408,389.70],[409,404.34],[410,407.99],[411,411.18],[412,406.16],[413,416.38],[414,409.66],[415,408.95],[416,402.16],[417,406.82],[418,404.24],[419,410.50],[420,415.00],[421,437.10],[422,440.50],[423,427.16],[424,425.97],[425,420.03],[426,417.94],[427,398.90],[428,394.80],[429,394.17],[430,394.75],[431,394.30],[432,394.78],[433,408.80],[434,402.98],[435,387.00],[436,374.13],[437,376.20],[438,371.30],[439,374.50],[440,370.99],[441,370.02],[442,370.95],[443,375.58],[444,381.25],[445,382.99],[446,381.35],[447,371.94],[448,371.82],[449,382.62],[450,379.44],[451,374.44],[452,389.99],[453,386.51],[454,393.30],[455,386.57],[456,381.54],[457,386.52],[458,384.39],[459,391.00],[460,390.70],[461,388.14],[462,387.17],[463,402.13],[464,399.95],[465,404.86],[466,404.22],[467,402.32],[468,406.11],[469,417.81],[470,419.33],[471,423.20],[472,421.46],[473,423.19],[474,420.45],[475,418.20],[476,424.56],[477,417.25],[478,408.83],[479,403.50],[480,407.89],[481,403.05],[482,399.00],[483,387.12],[484,390.11],[485,390.90],[486,389.36],[487,385.50],[488,382.40],[489,388.12],[490,386.60],[491,375.51],[492,367.23],[493,375.39],[494,373.85],[495,377.95],[496,381.00],[497,376.94],[498,374.20],[499,368.50],[500,369.43],[501,380.97],[502,387.72],[503,385.80],[504,383.36],[505,377.30],[506,378.29],[507,373.43],[508,373.73],[509,373.26],[510,380.95],[511,378.95],[512,380.75],[513,378.53],[514,378.60],[515,384.36],[516,380.14],[517,378.49],[518,377.85],[519,384.09],[520,391.90],[521,406.57],[522,403.98],[523,409.88],[524,414.69],[525,403.81],[526,397.00],[527,406.85],[528,403.78],[529,403.98],[530,406.87],[531,402.92],[532,403.58],[533,401.90],[534,401.44],[535,404.04],[536,415.70],[537,411.81],[538,420.50],[539,429.00],[540,426.65],[541,426.50],[542,427.44],[543,427.30],[544,421.75],[545,420.64],[546,419.31],[547,426.06],[548,459.67],[549,480.78],[550,473.31],[551,486.60],[552,485.10],[553,475.20],[554,476.57],[555,476.39],[556,467.50],[557,469.91],[558,471.80],[559,476.95],[560,472.57],[561,475.00],[562,472.63],[563,473.55],[564,481.03],[565,489.30],[566,491.93],[567,495.90],[568,498.79],[569,495.05],[570,509.65],[571,508.01],[572,505.00],[573,484.75],[574,489.50],[575,484.65],[576,484.81],[577,480.80],[578,484.85],[579,487.00],[580,488.71],[581,482.64],[582,484.11],[583,483.93],[584,481.78],[585,478.99],[586,482.12],[587,480.30],[588,462.80],[589,468.63],[590,462.90],[591,456.20],[592,455.58],[593,457.53],[594,468.03],[595,462.56],[596,460.48],[597,467.59],[598,483.26],[599,487.19],[600,483.58],[601,485.50],[602,489.46],[603,499.72],[604,505.00],[605,504.28],[606,497.28],[607,487.83],[608,489.75],[609,480.84],[610,479.05],[611,499.07],[612,488.09],[613,495.84],[614,492.47],[615,494.32],[616,501.50],[617,481.75],[618,481.50],[619,467.16],[620,471.48],[621,470.01],[622,471.03],[623,461.89],[624,458.29],[625,459.10],[626,465.93],[627,461.47],[628,469.94],[629,472.10],[630,475.86],[631,475.85],[632,470.62],[633,464.93],[634,448.77],[635,449.45],[636,448.23],[637,438.68],[638,440.95],[639,457.55],[640,455.64],[641,454.72],[642,452.96],[643,454.75],[644,443.03],[645,448.00],[646,446.19],[647,440.85],[648,447.23],[649,445.28],[650,456.55],[651,462.04],[652,461.83],[653,465.00],[654,463.62],[655,461.88],[656,460.92],[657,458.16],[658,458.53],[659,472.60],[660,471.02],[661,471.51],[662,468.21],[663,466.50],[664,464.53],[665,467.39],[666,466.29],[667,474.27],[668,472.80],[669,476.01],[670,471.65],[671,482.48],[672,479.08],[673,477.53],[674,477.99],[675,481.18],[676,479.01],[677,471.38],[678,469.00],[679,465.78],[680,473.23],[681,471.12],[682,467.27],[683,466.81],[684,469.25],[685,461.47],[686,466.74],[687,461.78],[688,458.00],[689,472.61],[690,470.96],[691,470.32],[692,470.60],[693,475.86],[694,473.97],[695,474.33],[696,483.52],[697,487.11],[698,498.60],[699,497.91],[700,500.40],[701,507.07],[702,518.84],[703,518.25],[704,515.06],[705,515.49],[706,511.34],[707,504.77],[708,505.24],[709,502.84],[710,505.89],[711,515.20],[712,514.31],[713,509.97],[714,514.11],[715,524.98],[716,527.42],[717,530.26],[718,526.29],[719,525.01],[720,522.70],[721,530.38],[722,534.34],[723,541.63],[724,539.40],[725,542.56],[726,543.34],[727,544.47],[728,545.33],[729,552.16],[730,552.99],[731,555.00],[732,549.50],[733,548.59],[734,520.12],[735,512.51],[736,514.00],[737,509.76],[738,508.00],[739,511.89],[740,516.11],[741,510.00],[742,512.94],[743,511.01],[744,503.00],[745,510.00],[746,516.02],[747,525.78],[748,514.73],[749,515.75],[750,515.50],[751,508.60],[752,497.55],[753,491.52],[754,500.04],[755,497.92],[756,506.61],[757,512.75],[758,512.19],[759,515.00],[760,513.26],[761,506.40],[762,512.88],[763,511.40],[764,515.25],[765,525.15],[766,527.80],[767,523.52],[768,519.35],[769,514.48],[770,521.33],[771,522.65],[772,524.78],[773,528.75],[774,525.30],[775,535.27],[776,546.85],[777,552.83],[778,560.10],[779,568.02],[780,569.00],[781,568.16],[782,567.50],[783,567.27],[784,582.55],[785,584.39],[786,584.02],[787,579.03],[788,594.05],[789,609.62],[790,615.18],[791,625.39],[792,622.00],[793,637.39],[794,620.11],[795,616.00],[796,633.48],[797,639.62],[798,644.71],[799,650.75],[800,675.77],[801,675.82],[802,668.51],[803,674.60],[804,679.23],[805,694.77],[806,707.00],[807,703.21],[808,711.25],[809,725.65],[810,741.79],[811,732.94],[812,693.84],[813,663.97],[814,632.07],[815,660.55],[816,641.68],[817,629.65],[818,633.63],[819,625.85],[820,648.54],[821,660.52],[822,676.70],[823,666.00],[824,673.57],[825,692.26],[826,697.00],[827,693.00],[828,681.53],[829,684.16],[830,698.51],[831,715.26],[832,714.87],[833,718.42],[834,699.20],[835,699.35],[836,694.05],[837,689.96],[838,669.23],[839,673.35],[840,677.37],[841,689.69],[842,696.69],[843,700.73],[844,710.84],[845,700.74],[846,702.53],[847,691.48],[848,685.19],[849,685.33],[850,657.00],[851,649.25],[852,631.68],[853,653.20],[854,646.73],[855,638.25],[856,653.82],[857,637.65],[858,615.95],[859,600.79],[860,600.25],[861,584.35],[862,548.62],[863,574.49],[864,566.40],[865,555.98],[866,550.52],[867,548.27],[868,564.30],[869,515.90],[870,495.43],[871,506.80],[872,501.71],[873,504.95],[874,516.69],[875,521.16],[876,518.09],[877,534.62],[878,532.25],[879,529.64],[880,508.95],[881,509.00],[882,502.86],[883,507.80],[884,486.44],[885,464.19],[886,472.86],[887,475.39],[888,471.18],[889,457.02],[890,444.60],[891,447.70],[892,432.70],[893,433.35],[894,413.62],[895,439.84],[896,440.18],[897,443.01],[898,437.92],[899,419.87],[900,439.16],[901,432.00],[902,433.55],[903,460.56],[904,450.78],[905,458.19],[906,444.08],[907,438.08],[908,440.47],[909,465.71],[910,465.70],[911,455.12],[912,471.09],[913,476.82],[914,467.81],[915,464.19],[916,469.08],[917,457.45],[918,451.66],[919,446.84],[920,455.03],[921,449.54],[922,539.41],[923,537.79],[924,555.00],[925,546.49],[926,543.04],[927,544.06],[928,552.12],[929,558.47],[930,574.29],[931,593.08],[932,581.29],[933,594.90],[934,586.36],[935,579.00],[936,583.01],[937,573.20],[938,584.94],[939,583.00],[940,576.30],[941,581.00],[942,580.07],[943,577.52],[944,578.60],[945,549.99],[946,549.46],[947,544.62],[948,560.90],[949,568.24],[950,583.00],[951,585.80],[952,575.00],[953,567.30],[954,572.22],[955,586.30],[956,567.00],[957,557.87],[958,554.17],[959,545.20],[960,552.95],[961,571.51],[962,572.81],[963,569.46],[964,562.38],[965,560.20],[966,546.43],[967,545.21],[968,542.30],[969,551.00],[970,528.82],[971,528.07],[972,526.42],[973,534.73],[974,527.04],[975,537.00],[976,543.91],[977,554.53],[978,541.55],[979,540.57],[980,533.80],[981,521.62],[982,516.09],[983,535.60],[984,533.44],[985,481.32],[986,468.80],[987,477.11],[988,489.22],[989,475.62],[990,491.98],[991,477.12],[992,483.11],[993,482.70],[994,473.75],[995,467.86],[996,463.00],[997,479.85],[998,486.34],[999,479.12],[1000,495.01],[1001,500.84],[1002,502.61],[1003,500.03],[1004,505.49],[1005,510.15],[1006,498.30],[1007,490.50],[1008,485.00],[1009,486.53],[1010,490.59],[1011,483.01],[1012,474.16],[1013,468.58],[1014,473.78],[1015,463.29],[1016,465.25],[1017,464.41],[1018,450.26],[1019,444.25],[1020,419.95],[1021,418.66],[1022,414.16],[1023,433.75],[1024,437.66],[1025,433.86],[1026,442.93],[1027,414.49],[1028,439.08],[1029,449.15],[1030,430.14],[1031,429.27],[1032,435.11],[1033,439.60],[1034,431.04],[1035,381.00],[1036,400.52],[1037,411.72],[1038,390.49],[1039,386.91],[1040,371.21],[1041,346.01],[1042,338.11],[1043,328.98],[1044,332.00],[1045,381.02],[1046,362.71],[1047,339.17],[1048,353.02],[1049,372.54],[1050,379.32],[1051,362.75],[1052,355.67],[1053,352.32],[1054,339.29],[1055,329.49],[1056,368.75],[1057,358.00],[1058,359.69],[1059,359.36],[1060,346.49],[1061,366.94],[1062,342.24],[1063,331.22],[1064,331.14],[1065,318.78],[1066,311.46],[1067,291.00],[1068,312.08],[1069,310.02],[1070,300.12],[1071,297.42],[1072,280.18],[1073,259.56],[1074,262.43],[1075,257.44],[1076,282.05],[1077,292.09],[1078,292.09],[1079,292.96],[1080,265.99],[1081,275.11],[1082,279.43],[1083,274.34],[1084,283.99],[1085,302.11],[1086,305.97],[1087,308.82],[1088,300.22],[1089,315.76],[1090,310.67],[1091,325.28],[1092,315.24],[1093,310.28],[1094,310.17],[1095,297.11],[1096,298.02],[1097,302.95],[1098,302.95],[1099,300.36],[1100,297.42],[1101,303.11],[1102,307.65],[1103,307.65],[1104,321.32],[1105,328.05],[1106,334.06],[1107,322.01],[1108,325.19],[1109,315.07],[1110,312.69],[1111,314.32],[1112,300.97],[1113,298.99],[1114,299.67],[1115,282.75],[1116,303.08],[1117,306.50],[1118,324.70],[1119,323.87],[1120,331.48],[1121,348.67],[1122,343.32],[1123,338.53],[1124,340.57],[1125,340.45],[1126,343.00],[1127,353.72],[1128,371.28],[1129,378.77],[1130,358.51],[1131,358.04],[1132,363.05],[1133,357.68],[1134,342.66],[1135,353.11],[1136,342.64],[1137,346.45],[1138,330.06],[1139,345.45],[1140,341.64],[1141,337.18],[1142,337.99],[1143,327.16],[1144,325.48],[1145,318.92],[1146,305.64],[1147,308.57],[1148,290.89],[1149,308.17],[1150,317.91],[1151,323.53],[1152,324.42],[1153,319.69],[1154,335.34],[1155,333.10],[1156,329.94],[1157,330.16],[1158,348.60],[1159,347.16],[1160,344.07],[1161,353.29],[1162,347.70],[1163,342.69],[1164,348.06],[1165,354.09],[1166,362.50],[1167,369.78],[1168,368.24],[1169,358.65],[1170,362.00],[1171,372.50],[1172,372.50],[1173,378.11],[1174,368.91],[1175,379.50],[1176,388.74],[1177,392.24],[1178,379.30],[1179,381.47],[1180,383.86],[1181,384.69],[1182,389.49],[1183,385.95],[1184,383.71],[1185,391.47],[1186,395.97],[1187,393.69],[1188,401.98],[1189,402.99],[1190,403.47],[1191,396.61],[1192,407.33],[1193,407.98],[1194,399.01],[1195,389.54],[1196,387.50],[1197,390.00],[1198,396.84],[1199,398.88],[1200,397.18],[1201,396.50],[1202,393.50],[1203,404.36],[1204,405.56],[1205,410.40],[1206,417.23],[1207,426.56],[1208,428.40],[1209,431.65],[1210,440.28],[1211,444.32],[1212,438.77],[1213,435.62],[1214,432.60],[1215,429.00],[1216,424.84],[1217,416.77],[1218,416.00],[1219,415.16],[1220,414.06],[1221,420.09],[1222,407.35],[1223,405.68],[1224,409.29],[1225,415.77],[1226,425.32],[1227,424.14],[1228,421.59],[1229,418.99],[1230,408.49],[1231,408.49],[1232,409.61],[1233,396.63],[1234,402.49],[1235,410.39],[1236,414.40],[1237,424.30],[1238,424.69],[1239,438.17],[1240,442.60],[1241,430.25],[1242,430.17],[1243,427.90],[1244,427.69],[1245,437.34],[1246,446.72],[1247,444.80],[1248,439.85],[1249,436.24],[1250,445.64],[1251,443.05],[1252,452.21],[1253,453.73],[1254,451.14],[1255,450.36],[1256,457.10],[1257,456.61],[1258,458.58],[1259,462.28],[1260,460.00],[1261,444.89],[1262,445.28],[1263,443.97],[1264,460.41],[1265,465.24],[1266,468.73],[1267,471.37],[1268,468.00],[1269,466.06],[1270,464.75],[1271,461.67],[1272,455.76],[1273,453.01],[1274,457.52],[1275,461.30],[1276,458.62],[1277,463.97],[1278,470.94],[1279,472.14],[1280,475.12],[1281,477.54],[1282,488.29],[1283,491.72],[1284,491.46],[1285,497.00],[1286,499.06],[1287,498.81],[1288,496.77],[1289,492.48],[1290,498.53],[1291,498.53],[1292,495.85],[1293,487.20],[1294,484.58],[1295,488.52],[1296,498.74],[1297,517.54],[1298,514.18],[1299,516.25],[1300,524.04],[1301,526.11],[1302,535.32],[1303,529.91],[1304,549.85],[1305,552.09],[1306,551.72],[1307,551.10],[1308,554.09],[1309,553.69],[1310,554.21],[1311,548.29],[1312,540.30],[1313,551.05],[1314,536.12],[1315,533.99],[1316,537.29],[1317,540.33],[1318,548.65],[1319,551.10],[1320,562.51],[1321,566.76],[1322,570.56],[1323,567.85],[1324,572.05],[1325,576.28],[1326,577.49],[1327,576.65],[1328,572.99],[1329,569.96],[1330,582.35],[1331,583.09],[1332,585.74],[1333,585.74],[1334,579.76],[1335,583.00],[1336,589.87],[1337,587.51],[1338,585.74],[1339,585.01],[1340,586.25],[1341,587.05],[1342,589.02],[1343,591.50],[1344,590.51],[1345,595.73],[1346,593.14],[1347,597.76],[1348,593.94],[1349,596.42],[1350,598.68],[1351,601.12],[1352,611.68],[1353,618.48],[1354,618.48],[1355,622.87],[1356,619.40],[1357,622.73],[1358,619.98],[1359,619.98],[1360,626.75],[1361,623.99],[1362,608.26],[1363,594.10],[1364,602.02],[1365,601.11],[1366,590.48],[1367,587.09],[1368,589.85],[1369,580.00],[1370,580.00],[1371,587.62],[1372,580.41],[1373,582.98],[1374,550.01],[1375,540.00],[1376,542.42],[1377,542.10],[1378,534.29],[1379,529.94],[1380,533.02],[1381,531.12],[1382,540.82],[1383,526.78],[1384,531.29],[1385,533.47],[1386,536.44],[1387,534.44],[1388,536.40],[1389,533.12],[1390,533.12],[1391,541.30],[1392,538.21],[1393,543.22],[1394,540.76],[1395,542.80],[1396,535.07],[1397,531.47],[1398,526.43],[1399,526.80],[1400,532.69],[1401,541.06],[1402,545.32],[1403,554.59]];
+var volumeData = [[0,22088000],[1,11377000],[2,9090700],[3,7599100],[4,4565900],[5,3527900],[6,3102400],[7,2585600],[8,2455900],[9,4525000],[10,7477500],[11,2572600],[12,2948400],[13,2493900],[14,2061500],[15,4736800],[16,3915300],[17,5402900],[18,5288000],[19,4619500],[20,4535800],[21,5310000],[22,3610000],[23,3781000],[24,4254000],[25,4494400],[26,3523200],[27,8421200],[28,15175600],[29,6696200],[30,7515600],[31,6488900],[32,7359700],[33,6648600],[34,7036400],[35,5509700],[36,5210700],[37,5488100],[38,9846300],[39,5200700],[40,6477600],[41,6888900],[42,9029600],[43,11201800],[44,11329000],[45,36716300],[46,32608400],[47,22195200],[48,13199900],[49,14593000],[50,20986500],[51,12136100],[52,11281900],[53,13775600],[54,14031000],[55,19671800],[56,11116600],[57,10916400],[58,10507800],[59,14850400],[60,16677500],[61,11831700],[62,20774500],[63,17958800],[64,16150000],[65,8637600],[66,12216300],[67,10591100],[68,15167800],[69,6423400],[70,10562200],[71,7553600],[72,7801200],[73,6118100],[74,5807500],[75,6208700],[76,6838800],[77,7313000],[78,7587500],[79,4221600],[80,4758500],[81,10951700],[82,11302700],[83,8450200],[84,7117900],[85,9689600],[86,5471400],[87,3855300],[88,3590000],[89,6079400],[90,4126200],[91,2640200],[92,5832200],[93,7590200],[94,15649600],[95,13676500],[96,8194600],[97,10326000],[98,9508700],[99,7418600],[100,6920000],[101,8104700],[102,6814300],[103,9528700],[104,12656800],[105,10714400],[106,8957500],[107,9024100],[108,13881100],[109,10559300],[110,12225200],[111,6577800],[112,12126900],[113,9513600],[114,11985700],[115,32475300],[116,12873100],[117,14741600],[118,12853700],[119,11406000],[120,16922400],[121,18912700],[122,13048300],[123,38258000],[124,25721600],[125,16443100],[126,10367600],[127,8434100],[128,13404600],[129,15216400],[130,25572200],[131,9853900],[132,7756600],[133,9271000],[134,7260700],[135,7563400],[136,6725900],[137,8427800],[138,7975700],[139,11179700],[140,10673700],[141,7973600],[142,10972200],[143,10376100],[144,6877400],[145,8078000],[146,6682900],[147,7411000],[148,5563900],[149,4794100],[150,3680200],[151,8661900],[152,6452700],[153,6206800],[154,6696900],[155,6159800],[156,8038300],[157,8636900],[158,5198900],[159,9650000],[160,5087700],[161,5344500],[162,7292600],[163,6492000],[164,6103700],[165,11351400],[166,6528000],[167,7307800],[168,15251300],[169,12997100],[170,32759000],[171,19715800],[172,17152000],[173,10229600],[174,8641600],[175,9082200],[176,9671300],[177,17684300],[178,11920300],[179,7484900],[180,6693200],[181,5513800],[182,6117500],[183,10858300],[184,8902800],[185,7381500],[186,5630900],[187,7762700],[188,12223900],[189,9640100],[190,7895800],[191,21223600],[192,28948500],[193,17743400],[194,13402700],[195,12088600],[196,21497800],[197,34900300],[198,17704500],[199,18703400],[200,22406100],[201,24206200],[202,25191400],[203,16319900],[204,12509400],[205,12683500],[206,9985700],[207,20776300],[208,12206800],[209,9951200],[210,20910500],[211,15069700],[212,10277000],[213,13929300],[214,16652500],[215,17619200],[216,18812000],[217,18143700],[218,14820100],[219,9089900],[220,7433800],[221,7918000],[222,10583500],[223,7407700],[224,8311300],[225,5832800],[226,11284700],[227,10553100],[228,8026300],[229,6129600],[230,11233100],[231,13732700],[232,13611400],[233,23178900],[234,9585500],[235,9743400],[236,7164700],[237,5864300],[238,8269500],[239,5643900],[240,7244800],[241,5888700],[242,5209400],[243,5902500],[244,4441500],[245,5734800],[246,6827600],[247,7410400],[248,6540900],[249,8042700],[250,7051100],[251,3825300],[252,11788700],[253,5510400],[254,6784100],[255,5796600],[256,8504900],[257,4347100],[258,3735100],[259,5863400],[260,4757600],[261,4959300],[262,2720000],[263,3391200],[264,4184900],[265,7452800],[266,6594100],[267,4351700],[268,10310100],[269,10256300],[270,11185000],[271,15377000],[272,7349700],[273,5742900],[274,9346400],[275,9776500],[276,12619900],[277,8339700],[278,9731600],[279,6819700],[280,7918200],[281,5542800],[282,8761600],[283,9117400],[284,9092600],[285,8279000],[286,7929500],[287,6742900],[288,5517400],[289,8484300],[290,9151200],[291,10544100],[292,8499100],[293,7507600],[294,6896400],[295,6872000],[296,7902100],[297,22440600],[298,9404400],[299,6847000],[300,8841700],[301,5101500],[302,5861900],[303,14245000],[304,16247000],[305,10526800],[306,7355100],[307,8744100],[308,9489300],[309,7857200],[310,10361600],[311,8973200],[312,6998300],[313,7642700],[314,8569500],[315,8561300],[316,9058400],[317,6845700],[318,10237000],[319,9539800],[320,9923900],[321,4791900],[322,10869500],[323,21200600],[324,15456200],[325,9480400],[326,7444000],[327,10095800],[328,15020200],[329,11428800],[330,8818100],[331,7538200],[332,6882800],[333,8059600],[334,6512200],[335,5932000],[336,13740500],[337,21815600],[338,9972900],[339,11167600],[340,7495600],[341,4552200],[342,6656900],[343,7207400],[344,6891300],[345,7499100],[346,12905700],[347,15100400],[348,10665200],[349,17622300],[350,12743900],[351,9034700],[352,8857000],[353,10041500],[354,7621900],[355,7176400],[356,20032100],[357,14451300],[358,40548700],[359,22482600],[360,15369100],[361,18596300],[362,12809100],[363,8395500],[364,8490800],[365,14396900],[366,26608600],[367,11503000],[368,18172500],[369,8851800],[370,16486500],[371,20686200],[372,11700100],[373,14751100],[374,19453100],[375,14522100],[376,12621400],[377,21105400],[378,14019100],[379,8367200],[380,6448600],[381,12498800],[382,6456400],[383,10130300],[384,39204500],[385,11967900],[386,17950400],[387,11797700],[388,8869400],[389,9812500],[390,11503400],[391,13794600],[392,19241200],[393,13589100],[394,18324300],[395,12633300],[396,9906700],[397,8426600],[398,10359500],[399,9762300],[400,7569000],[401,6117700],[402,14948200],[403,6973300],[404,8885500],[405,17942800],[406,14607200],[407,27961300],[408,8035300],[409,15606700],[410,13212500],[411,8558900],[412,6983200],[413,9241500],[414,11043400],[415,5993200],[416,6518100],[417,8236500],[418,7035700],[419,6677800],[420,7535900],[421,22234100],[422,8386900],[423,9469400],[424,7199000],[425,8197000],[426,7372400],[427,10222000],[428,13009200],[429,7764800],[430,4611300],[431,5990300],[432,5068000],[433,9001900],[434,6161100],[435,8870600],[436,10029800],[437,8554800],[438,5245200],[439,10418300],[440,5803600],[441,11293500],[442,8567000],[443,8925200],[444,9520100],[445,8133300],[446,3632300],[447,4273200],[448,7915700],[449,6239000],[450,6342600],[451,5524200],[452,10165700],[453,8464000],[454,10328800],[455,6123300],[456,4988500],[457,7628500],[458,7737200],[459,6738700],[460,5153100],[461,6985300],[462,4008800],[463,8625500],[464,5980100],[465,5282500],[466,3524800],[467,4085100],[468,3687000],[469,6617900],[470,5577200],[471,2132400],[472,4932600],[473,3653800],[474,5964900],[475,4420400],[476,5949400],[477,4867700],[478,6894400],[479,7430500],[480,5798600],[481,7373500],[482,8180600],[483,9075200],[484,11524300],[485,7857100],[486,5722200],[487,5401700],[488,5617900],[489,4075700],[490,4477200],[491,5397400],[492,7008100],[493,6303500],[494,5080700],[495,3789100],[496,5690900],[497,4249100],[498,4247000],[499,3744300],[500,4946400],[501,6607100],[502,5814600],[503,5060200],[504,4911000],[505,4000900],[506,4144500],[507,3611300],[508,3466200],[509,2461300],[510,4151800],[511,4007800],[512,4069100],[513,2916400],[514,2660000],[515,4062400],[516,3712600],[517,3719600],[518,3066000],[519,4500000],[520,5427400],[521,9644400],[522,5337400],[523,7488000],[524,7076700],[525,14181600],[526,9086800],[527,10653500],[528,4638400],[529,5588200],[530,5250300],[531,5805700],[532,5061400],[533,3275600],[534,3629800],[535,5432700],[536,6493200],[537,5533400],[538,7271300],[539,7013200],[540,9524400],[541,5586000],[542,4801800],[543,3594100],[544,4271100],[545,4763600],[546,5880800],[547,7594600],[548,10872800],[549,14367700],[550,8349200],[551,8973900],[552,6894000],[553,6495900],[554,6484600],[555,6197200],[556,5318200],[557,5040900],[558,4844200],[559,4934600],[560,4833900],[561,7872700],[562,4811700],[563,2742300],[564,4293600],[565,7053200],[566,8056600],[567,4893900],[568,5237900],[569,5002600],[570,8317200],[571,4381300],[572,1657700],[573,7194200],[574,7654400],[575,6157200],[576,5493900],[577,5545900],[578,4822600],[579,4020300],[580,4390200],[581,4597500],[582,3889900],[583,3215200],[584,4169900],[585,4591400],[586,4638000],[587,4244900],[588,7820000],[589,6428300],[590,4189500],[591,6864800],[592,3941900],[593,2024900],[594,4123500],[595,3063100],[596,2507700],[597,7527500],[598,7787700],[599,6769400],[600,4686900],[601,5339800],[602,5857600],[603,7001500],[604,4333000],[605,7446800],[606,6574900],[607,5858800],[608,4809500],[609,5305200],[610,4539600],[611,5862000],[612,6253100],[613,5415600],[614,4679300],[615,4112000],[616,8642900],[617,14373800],[618,6195000],[619,7117800],[620,5231700],[621,3781100],[622,4037100],[623,4825300],[624,5706700],[625,4008400],[626,5547300],[627,3996300],[628,5987000],[629,3978200],[630,5581000],[631,5668500],[632,3838200],[633,3911300],[634,9134700],[635,7884600],[636,8536200],[637,6527600],[638,6116300],[639,7311100],[640,6332900],[641,5271300],[642,4812300],[643,3366500],[644,6240700],[645,7882300],[646,3740000],[647,5252200],[648,5049000],[649,3291000],[650,5711000],[651,5528300],[652,4025500],[653,4633100],[654,3201200],[655,4450800],[656,3884400],[657,3264400],[658,3394400],[659,6328700],[660,3703800],[661,2679600],[662,2997000],[663,2946100],[664,3751400],[665,2670000],[666,2652800],[667,4980400],[668,3064500],[669,5495900],[670,7656400],[671,11352600],[672,5440400],[673,3648500],[674,3860800],[675,4010900],[676,2890800],[677,3538700],[678,3571300],[679,2981100],[680,3528800],[681,3769300],[682,2994900],[683,2869700],[684,3867800],[685,3654800],[686,2793400],[687,3014400],[688,4063800],[689,6296800],[690,4570400],[691,3297900],[692,6065000],[693,3770000],[694,4842400],[695,4117800],[696,5246400],[697,5147500],[698,6862700],[699,8599800],[700,4657400],[701,7036300],[702,10149600],[703,7690300],[704,10488400],[705,6232600],[706,4539500],[707,6147700],[708,6943300],[709,4523500],[710,5944900],[711,4763800],[712,4263400],[713,4256300],[714,4350100],[715,6768200],[716,7791000],[717,5488700],[718,6023400],[719,3814400],[720,3813400],[721,3362800],[722,1827000],[723,4867300],[724,2705900],[725,3617000],[726,3760000],[727,3267200],[728,3404000],[729,5033300],[730,6550000],[731,4211200],[732,5973900],[733,6477800],[734,16026500],[735,6227900],[736,5346600],[737,5453500],[738,6779400],[739,5361400],[740,3798800],[741,4159100],[742,4329800],[743,3117100],[744,3090600],[745,3582100],[746,4191400],[747,3955500],[748,4764500],[749,5000100],[750,3022500],[751,3574300],[752,5337100],[753,8438400],[754,5236600],[755,2589800],[756,3546200],[757,3076000],[758,2995400],[759,2447200],[760,2271800],[761,2889400],[762,2476800],[763,2583400],[764,2681700],[765,3633900],[766,3241700],[767,3576700],[768,3590700],[769,3198900],[770,2680300],[771,2946000],[772,1873300],[773,2723500],[774,2140600],[775,4107700],[776,5477500],[777,5485600],[778,6957000],[779,5210800],[780,2647400],[781,3234400],[782,1980100],[783,2448000],[784,4640000],[785,6838000],[786,3806000],[787,2931500],[788,4895400],[789,4980400],[790,8533500],[791,5190300],[792,11509700],[793,6652800],[794,6838600],[795,5661300],[796,5784700],[797,8650500],[798,14154000],[799,6490000],[800,6575800],[801,7324000],[802,5687900],[803,3258600],[804,3008400],[805,6798600],[806,6525900],[807,6407200],[808,5639100],[809,8778300],[810,8267700],[811,7997400],[812,15612500],[813,10487700],[814,10060700],[815,8181000],[816,7739800],[817,6871200],[818,8813800],[819,5459400],[820,9527300],[821,6931900],[822,2558000],[823,6420500],[824,8805500],[825,7750600],[826,6167400],[827,7697600],[828,4269900],[829,4157500],[830,4117400],[831,4850900],[832,3785200],[833,3184500],[834,5414700],[835,5991000],[836,5013900],[837,3636600],[838,5453000],[839,7029600],[840,4397100],[841,4295200],[842,5103700],[843,1503500],[844,2500600],[845,2921800],[846,2503100],[847,2336300],[848,4247000],[849,3202600],[850,5273500],[851,6282100],[852,5248700],[853,6677200],[854,6207900],[855,4946700],[856,4355600],[857,5290800],[858,10478800],[859,8104500],[860,8265800],[861,9000100],[862,16687700],[863,9156200],[864,6831100],[865,5752900],[866,6028300],[867,7817400],[868,10447200],[869,16711900],[870,12923200],[871,11023400],[872,7492300],[873,7830900],[874,6739400],[875,5758900],[876,6576800],[877,6090200],[878,6400800],[879,5080100],[880,6259400],[881,6556700],[882,5527300],[883,5445500],[884,8188300],[885,22296900],[886,9992200],[887,6308700],[888,9281700],[889,7495200],[890,13472400],[891,7288500],[892,7348000],[893,7930200],[894,7871400],[895,8520100],[896,6481500],[897,7647300],[898,6448000],[899,7794500],[900,7103700],[901,6062400],[902,9522900],[903,6714900],[904,5710500],[905,4919500],[906,5665800],[907,4322700],[908,4368800],[909,6027000],[910,5940600],[911,6391200],[912,5843300],[913,5800900],[914,4493800],[915,5961200],[916,5049400],[917,3791600],[918,3766400],[919,4436400],[920,7453000],[921,7133100],[922,16860300],[923,7254200],[924,7843800],[925,4798100],[926,4068400],[927,4022900],[928,3954200],[929,4276200],[930,7784100],[931,6555200],[932,6879300],[933,6091000],[934,4537100],[935,6541200],[936,5051200],[937,4446100],[938,4821300],[939,5061600],[940,4326600],[941,4296000],[942,4022100],[943,5565300],[944,3246600],[945,6301600],[946,4312200],[947,4394600],[948,3610700],[949,3976800],[950,4754900],[951,3136900],[952,3615700],[953,4268700],[954,3344000],[955,3897400],[956,4679900],[957,5267200],[958,3620100],[959,3776700],[960,5390700],[961,6060500],[962,3506400],[963,3434600],[964,3285800],[965,5587600],[966,5830600],[967,3597200],[968,4637000],[969,3911100],[970,5549400],[971,5073700],[972,3683000],[973,4874800],[974,4148700],[975,2368800],[976,4198600],[977,4406200],[978,4081100],[979,4263500],[980,4822900],[981,4398500],[982,6015000],[983,4674700],[984,5491200],[985,10783800],[986,5802900],[987,4619400],[988,4695400],[989,3466300],[990,3064300],[991,3121800],[992,2711800],[993,3459200],[994,2827400],[995,2969000],[996,2459100],[997,3510200],[998,3346000],[999,2711600],[1000,3700900],[1001,4199600],[1002,2731100],[1003,3602700],[1004,2888200],[1005,3487200],[1006,3264000],[1007,2970000],[1008,3969700],[1009,3437900],[1010,2264900],[1011,1975500],[1012,3182200],[1013,4354700],[1014,3004500],[1015,3768100],[1016,6020400],[1017,4281600],[1018,4792700],[1019,4470900],[1020,8890500],[1021,7143600],[1022,6141100],[1023,6401000],[1024,5983600],[1025,6490000],[1026,6888400],[1027,8953200],[1028,8395600],[1029,9552700],[1030,4321000],[1031,5106300],[1032,4186300],[1033,4919500],[1034,5252400],[1035,10623400],[1036,9451900],[1037,6082700],[1038,5936400],[1039,7925900],[1040,11084200],[1041,10807000],[1042,11668000],[1043,7982100],[1044,10402000],[1045,8733100],[1046,7515800],[1047,6614000],[1048,13980400],[1049,13881200],[1050,6649600],[1051,5628300],[1052,6445200],[1053,6404700],[1054,7221800],[1055,6134700],[1056,7964800],[1057,9656600],[1058,7894700],[1059,7299400],[1060,5642900],[1061,7277700],[1062,6902100],[1063,8186900],[1064,4622900],[1065,8097595],[1066,10148785],[1067,10054453],[1068,13239068],[1069,9518466],[1070,7544451],[1071,8348791],[1072,7841605],[1073,9780746],[1074,10246338],[1075,10059557],[1076,10774259],[1077,6359179],[1078,0],[1079,2566368],[1080,5711464],[1081,5841927],[1082,5906616],[1083,4887799],[1084,6523543],[1085,8145300],[1086,6891773],[1087,5239603],[1088,6181078],[1089,5722856],[1090,6738806],[1091,7199994],[1092,5789689],[1093,4764056],[1094,5670140],[1095,3919429],[1096,3783790],[1097,1921757],[1098,0],[1099,1961122],[1100,3702166],[1101,3845369],[1102,2887334],[1103,0],[1104,3617574],[1105,4891063],[1106,6426845],[1107,4495295],[1108,3601466],[1109,4341085],[1110,3304863],[1111,4433603],[1112,5577379],[1113,5936381],[1114,5225959],[1115,5050088],[1116,4927534],[1117,8266320],[1118,10732775],[1119,4611581],[1120,4929544],[1121,7693202],[1122,7284342],[1123,4672843],[1124,5206915],[1125,6561634],[1126,6817851],[1127,7265283],[1128,7041797],[1129,4983224],[1130,7105831],[1131,5232088],[1132,5551383],[1133,4147107],[1134,5680732],[1135,6025999],[1136,4989553],[1137,6217692],[1138,5220506],[1139,6101985],[1140,6440776],[1141,5607758],[1142,5420892],[1143,5789674],[1144,6524207],[1145,7820133],[1146,6530631],[1147,7238087],[1148,6929592],[1149,6731733],[1150,5927178],[1151,5026330],[1152,3907609],[1153,4947256],[1154,4715786],[1155,5013619],[1156,4111476],[1157,4738590],[1158,4272085],[1159,3821808],[1160,4337117],[1161,6004769],[1162,3323401],[1163,3096702],[1164,3658421],[1165,3303042],[1166,4489367],[1167,3770328],[1168,3281760],[1169,3681433],[1170,2765142],[1171,3383146],[1172,0],[1173,3050081],[1174,3429359],[1175,4935003],[1176,10185094],[1177,10734963],[1178,4429555],[1179,3697301],[1180,3503616],[1181,2611240],[1182,3386147],[1183,2291125],[1184,2943938],[1185,3610160],[1186,4361069],[1187,2428611],[1188,3204843],[1189,2401096],[1190,2633743],[1191,3000724],[1192,3865597],[1193,2560736],[1194,3796453],[1195,2852384],[1196,2937904],[1197,3016859],[1198,3352055],[1199,2837823],[1200,2284191],[1201,2720300],[1202,1718843],[1203,3104776],[1204,3035892],[1205,2668993],[1206,2649405],[1207,3323431],[1208,2626012],[1209,3535593],[1210,3639434],[1211,3681002],[1212,3098931],[1213,3255945],[1214,3358870],[1215,2866040],[1216,2918429],[1217,3737299],[1218,3050261],[1219,3490947],[1220,3087653],[1221,4261008],[1222,4124360],[1223,2899710],[1224,2457992],[1225,3042038],[1226,3257482],[1227,2169518],[1228,2594683],[1229,2310768],[1230,2517630],[1231,0],[1232,2262557],[1233,3260307],[1234,3441854],[1235,3275816],[1236,2929559],[1237,4047557],[1238,2896461],[1239,3779342],[1240,6554412],[1241,6854734],[1242,3154002],[1243,2969146],[1244,2586960],[1245,3479378],[1246,3629454],[1247,2505329],[1248,2541052],[1249,1987216],[1250,3200547],[1251,2861550],[1252,2591173],[1253,2390098],[1254,2342227],[1255,2111395],[1256,2543392],[1257,1741979],[1258,2341768],[1259,1995640],[1260,1676559],[1261,2620304],[1262,2357493],[1263,2260091],[1264,4002454],[1265,3564367],[1266,2459325],[1267,2343030],[1268,1988449],[1269,2000000],[1270,1771808],[1271,1957955],[1272,2595091],[1273,1806518],[1274,1646354],[1275,1499873],[1276,2656609],[1277,2195496],[1278,2535304],[1279,1902811],[1280,1977667],[1281,2398607],[1282,2587367],[1283,4483447],[1284,3284248],[1285,2117567],[1286,3041830],[1287,2700820],[1288,2528646],[1289,2052014],[1290,1843168],[1291,2099379],[1292,3141701],[1293,2816234],[1294,2600805],[1295,2144652],[1296,2732977],[1297,4877683],[1298,4306504],[1299,2739892],[1300,3324320],[1301,3042242],[1302,3265055],[1303,6100353],[1304,8845714],[1305,3220167],[1306,4044439],[1307,3673168],[1308,2337087],[1309,2393191],[1310,2973706],[1311,3218033],[1312,2568660],[1313,2518762],[1314,3469738],[1315,3202875],[1316,2382892],[1317,2333629],[1318,1848039],[1319,1826705],[1320,2651426],[1321,2231476],[1322,2321856],[1323,1886395],[1324,1668092],[1325,2199136],[1326,1920765],[1327,1550127],[1328,2168302],[1329,2006202],[1330,2548562],[1331,1608648],[1332,1461405],[1333,0],[1334,1384523],[1335,1725231],[1336,2321273],[1337,1665225],[1338,1429399],[1339,2514042],[1340,1636587],[1341,1525524],[1342,1781288],[1343,1669525],[1344,1723378],[1345,1913572],[1346,2280340],[1347,2809751],[1348,2640762],[1349,3532540],[1350,2571981],[1351,1884290],[1352,2075311],[1353,858620],[1354,0],[1355,1698015],[1356,1427712],[1357,1466379],[1358,1220214],[1359,0],[1360,1957963],[1361,3007857],[1362,3980628],[1363,6418020],[1364,4724735],[1365,7216804],[1366,4853249],[1367,6499074],[1368,4241570],[1369,5437698],[1370,0],[1371,4317143],[1372,3253498],[1373,6307634],[1374,6807653],[1375,4421012],[1376,4356767],[1377,3965467],[1378,3231041],[1379,4141196],[1380,2253021],[1381,4096305],[1382,2999890],[1383,3382732],[1384,3157048],[1385,2695412],[1386,2828685],[1387,2675794],[1388,2411090],[1389,2280371],[1390,0],[1391,3654824],[1392,2030680],[1393,2339250],[1394,2555348],[1395,2144741],[1396,2874790],[1397,2326901],[1398,3309373],[1399,2049372],[1400,2238334],[1401,4357461],[1402,3090124],[1403,3184077]];
+var summaryData = [[0,100.34],[14,102.31],[28,131.08],[42,147.94],[56,172.55],[70,181.05],[84,180.08],[98,193.85],[112,190.34],[126,197.90],[140,179.98],[154,180.51],[168,198.10],[182,227.80],[196,277.27],[210,286.70],[224,293.35],[238,287.76],[252,279.99],[266,295.39],[280,306.00],[294,303.28],[308,395.03],[322,423.48],[336,430.15],[351,469.76],[365,432.66],[379,366.59],[393,337.06],[407,390.00],[421,437.10],[435,387.00],[449,382.62],[463,402.13],[477,417.25],[491,375.51],[505,377.30],[519,384.09],[533,401.90],[547,426.06],[561,475.00],[575,484.65],[589,468.63],[603,499.72],[617,481.75],[631,475.85],[645,448.00],[659,472.60],[673,477.53],[687,461.78],[702,518.84],[716,527.42],[730,552.99],[744,503.00],[758,512.19],[772,524.78],[786,584.02],[800,675.77],[814,632.07],[828,681.53],[842,696.69],[856,653.82],[870,495.43],[884,486.44],[898,437.92],[912,471.09],[926,543.04],[940,576.30],[954,572.22],[968,542.30],[982,516.09],[996,463.00],[1010,490.59],[1024,437.66],[1038,390.49],[1053,352.32],[1067,291.00],[1081,275.11],[1095,297.11],[1109,315.07],[1123,338.53],[1137,346.45],[1151,323.53],[1165,354.09],[1179,381.47],[1193,407.98],[1207,426.56],[1221,420.09],[1235,410.39],[1249,436.24],[1263,443.97],[1277,463.97],[1291,498.53],[1305,552.09],[1319,551.10],[1333,585.74],[1347,597.76],[1361,623.99],[1375,540.00],[1403,554.59]];
+var flagData = [[28, 'Sample Flag']];
\ No newline at end of file
diff --git a/sample_for_plotting/js/demo.js b/sample_for_plotting/js/demo.js
new file mode 100644
index 0000000..049343c
--- /dev/null
+++ b/sample_for_plotting/js/demo.js
@@ -0,0 +1,57 @@
+Event.observe(document, 'dom:loaded', function() {
+
+ prettyPrint();
+
+ HumbleFinance.trackFormatter = function (obj) {
+
+ var x = Math.floor(obj.x);
+ var data = jsonData[x];
+ var text = data.date + " Price: " + data.close + " Vol: " + data.volume;
+
+ return text;
+ };
+
+ HumbleFinance.yTickFormatter = function (n) {
+
+ if (n == this.axes.y.max) {
+ return false;
+ }
+
+ return '$'+n;
+ };
+
+ HumbleFinance.xTickFormatter = function (n) {
+
+ if (n == 0) {
+ return false;
+ }
+
+ var date = jsonData[n].date;
+ date = date.split(' ');
+ date = date[2];
+
+ return date;
+ }
+
+ HumbleFinance.init('finance', priceData, volumeData, summaryData);
+ HumbleFinance.setFlags(flagData);
+
+ var xaxis = HumbleFinance.graphs.summary.axes.x;
+ var prevSelection = HumbleFinance.graphs.summary.prevSelection;
+ var xmin = xaxis.p2d(prevSelection.first.x);
+ var xmax = xaxis.p2d(prevSelection.second.x);
+
+ $('dateRange').update(jsonData[xmin].date + ' - ' + jsonData[xmax].date);
+
+ Event.observe(HumbleFinance.containers.summary, 'flotr:select', function (e) {
+
+ var area = e.memo[0];
+ xmin = Math.floor(area.x1);
+ xmax = Math.ceil(area.x2);
+
+ var date1 = jsonData[xmin].date;
+ var date2 = jsonData[xmax].date;
+
+ $('dateRange').update(jsonData[xmin].date + ' - ' + jsonData[xmax].date);
+ });
+});
\ No newline at end of file
diff --git a/sample_for_plotting/js/excanvas.js b/sample_for_plotting/js/excanvas.js
new file mode 100644
index 0000000..73963d8
--- /dev/null
+++ b/sample_for_plotting/js/excanvas.js
@@ -0,0 +1,884 @@
+// Copyright 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+// Known Issues:
+//
+// * Patterns are not implemented.
+// * Radial gradient are not implemented. The VML version of these look very
+// different from the canvas one.
+// * Clipping paths are not implemented.
+// * Coordsize. The width and height attribute have higher priority than the
+// width and height style values which isn't correct.
+// * Painting mode isn't implemented.
+// * Canvas width/height should is using content-box by default. IE in
+// Quirks mode will draw the canvas using border-box. Either change your
+// doctype to HTML5
+// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
+// or use Box Sizing Behavior from WebFX
+// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
+// * Non uniform scaling does not correctly scale strokes.
+// * Optimize. There is always room for speed improvements.
+
+// Only add this code if we do not already have a canvas implementation
+if (!document.createElement('canvas').getContext) {
+
+(function() {
+
+ // alias some functions to make (compiled) code shorter
+ var m = Math;
+ var mr = m.round;
+ var ms = m.sin;
+ var mc = m.cos;
+ var abs = m.abs;
+ var sqrt = m.sqrt;
+
+ // this is used for sub pixel precision
+ var Z = 10;
+ var Z2 = Z / 2;
+
+ /**
+ * This funtion is assigned to the